コード例 #1
0
        public IQueryable <ExamSolutionRecordInfo> QueryRecordSolution(int recordId, int detailId, Expression <Func <DbModel.ExamRecordSolutionDetailInfo, bool> > expression)
        {
            IQueryable <DbModel.ExamRecordSolutionDetailInfo> solutionRecords = _solutionRecordRepository.All().AsQueryable();

            if (recordId > 0)
            {
                solutionRecords = solutionRecords.Where(p => p.QuestionRecord.RecordId.Equals(recordId));
            }
            if (detailId > 0)
            {
                solutionRecords = solutionRecords.Where(p => p.DetailId.Equals(detailId));
            }
            if (expression != null)
            {
                solutionRecords = solutionRecords.Where(expression);
            }
            List <ExamSolutionRecordInfo> results = new List <ExamSolutionRecordInfo>();

            foreach (DbModel.ExamRecordSolutionDetailInfo record in solutionRecords)
            {
                ExamSolutionRecordInfo result = new ExamSolutionRecordInfo();
                result.Id           = record.Id;
                result.SolutionId   = record.SolutionId;
                result.IsCorrect    = record.IsCorrect;
                result.CreateUserId = record.CreateUserId;
                result.CreateDate   = record.CreateDate;
                results.Add(result);
            }
            foreach (ExamSolutionRecordInfo record in results)
            {
                record.CreateUser = _userApp.Load(record.CreateUserId.ToString());
                record.Solution   = _questionApp.QuerySolution(p => p.SolutionId.Equals(record.SolutionId));
            }
            return(results.AsQueryable());
        }
コード例 #2
0
        private ICollection <ExamSolutionRecordInfo> GetSolutionRecord(ExamDetailSubmitInfo detail)
        {
            List <ExamSolutionRecordInfo> solutionRecords = new List <ExamSolutionRecordInfo>();

            foreach (int solutionId in detail.solutionId)
            {
                SolutionInfo           solution   = _questionApp.QuerySolution(p => p.QuestionId.Equals(detail.questionId) && p.SolutionId.Equals(solutionId));
                ExamSolutionRecordInfo recordInfo = new ExamSolutionRecordInfo();
                recordInfo.SolutionId = solutionId;
                recordInfo.IsCorrect  = solution.IsCorrect;
                recordInfo.CreateUser = _loginUser;
                solutionRecords.Add(recordInfo);
            }
            return(solutionRecords);
        }
コード例 #3
0
 public ExamSolutionRecordInfo AddSolutionRecord(int recordId, int detailId, ExamSolutionRecordInfo recordInfo)
 {
     try
     {
         DbModel.ExamRecordSolutionDetailInfo saveInfo = new DbModel.ExamRecordSolutionDetailInfo();
         saveInfo.DetailId     = detailId;
         saveInfo.SolutionId   = recordInfo.SolutionId;
         saveInfo.IsCorrect    = recordInfo.IsCorrect;
         saveInfo.CreateUserId = recordInfo.CreateUser == null ? _loginUser.Id : recordInfo.CreateUser.Id;
         saveInfo.CreateDate   = DateTime.Now;
         saveInfo      = _solutionRecordRepository.Create(saveInfo);
         recordInfo.Id = saveInfo.Id;
     }
     catch (Exception ex)
     {
         _log.LogError(ex, nameof(AddSolutionRecord));
         throw;
     }
     return(recordInfo);
 }