cms_yiqingfangkong/TE.Site.Core/Services/Admin/Log_AnswerService.cs

(完整代码) 2KB

using System.Linq;
using TE.Data;
using TE.Data.DbMain;
using TE.Site.Core.Contracts.Admin;
using TE.Site.Core.Dtos.Admin;

namespace TE.Site.Core.Services.Admin
{
    public class Log_AnswerService : ILog_AnswerContract
    {
        protected ILib_RegisterDAL _LibRegisterDal = new Lib_RegisterDAL();
        protected ILib_QuestionDAL _LibQuestionDal = new Lib_QuestionDAL();
        protected ILog_AnswerDAL _LogAnswerDal = new Log_AnswerDAL();
        protected ILog_QuestionAnswerDAL _LogQuestionAnswerDal = new Log_QuestionAnswerDAL();

        public IDAO DbMainDAO { get; private set; }
        public Log_AnswerService(IDAO _DAO = null)
        {
            DbMainDAO = _DAO ?? new DbMainDAO();
            _LibRegisterDal.SetDbContext(DbMainDAO);
            _LibQuestionDal.SetDbContext(DbMainDAO);
            _LogAnswerDal.SetDbContext(DbMainDAO);
            _LogQuestionAnswerDal.SetDbContext(DbMainDAO);
        }

        public Dto_Filter GetAnswerLogs(string userIdentity)
        {
            Dto_Filter dtoFilter = new Dto_Filter();

            var dtaRegister = _LibRegisterDal.TrackEntities.FirstOrDefault(p => p.UserID == userIdentity);

            if (dtaRegister != null)
            {
                var answerLogs = _LogAnswerDal.TrackEntities
                    .Where(p => p.RegisterId == dtaRegister.LogId)
                    .OrderBy(p => p.SubmitOn).Take(dtaRegister.MaxLimit).ToList();

                var answerLogIds = answerLogs.Select(p => p.LogId).ToList();

                dtoFilter.ILogs = answerLogs;
                dtoFilter.IAnswers = _LogQuestionAnswerDal.TrackEntities.Where(p => answerLogIds.Contains(p.AnswerId)).ToList();
                dtoFilter.IQuestions =_LibQuestionDal.TrackEntities
                    .Where(p => p.LastUpdateBy == userIdentity)
                    .OrderBy(p => p.ShowOrder).ThenByDescending(p => p.LastUpdateOn).ToList();
                
                dtoFilter.IsMaxLimit = answerLogIds.Count() >= dtaRegister.MaxLimit;
            }

            return dtoFilter;
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。