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()); }
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); }
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); }