private ICollection <ExamQuestionRecordInfo> GetQuestionRecord(List <ExamDetailSubmitInfo> details) { List <ExamQuestionRecordInfo> questionRecords = new List <ExamQuestionRecordInfo>(); foreach (ExamDetailSubmitInfo detail in details) { ExamQuestionRecordInfo recordInfo = new ExamQuestionRecordInfo(); recordInfo.QuestionId = detail.questionId; recordInfo.QuestionScore = GeneralSolutionScore(detail); recordInfo.CreateUser = _loginUser; questionRecords.Add(recordInfo); recordInfo.SolutionRecords = GetSolutionRecord(detail); } return(questionRecords); }
public IQueryable <ExamQuestionRecordInfo> QueryRecordQuestion(int recordId, Expression <Func <DbModel.ExamRecordQuestionDetailInfo, bool> > expression) { IQueryable <DbModel.ExamRecordQuestionDetailInfo> questionRecords = _questionRecordRepository.All().AsQueryable(); if (recordId > 0) { questionRecords = questionRecords.Where(p => p.RecordId.Equals(recordId)); } if (expression != null) { questionRecords = questionRecords.Where(expression); } List <ExamQuestionRecordInfo> results = new List <ExamQuestionRecordInfo>(); foreach (DbModel.ExamRecordQuestionDetailInfo record in questionRecords) { ExamQuestionRecordInfo result = new ExamQuestionRecordInfo(); result.Id = record.Id; result.RecordId = record.RecordId; result.QuestionId = record.QuestionId; result.QuestionScore = record.QuestionScore; result.CreateUserId = record.CreateUserId; result.CreateDate = record.CreateDate; results.Add(result); } foreach (ExamQuestionRecordInfo record in results) { record.CreateUser = _userApp.Load(record.CreateUserId.ToString()); record.Question = _questionApp.Load(record.QuestionId); record.SolutionRecords = QueryRecordSolution(record.RecordId, record.Id).ToList(); foreach (ExamSolutionRecordInfo solutionRecord in record.SolutionRecords) { solutionRecord.QuestionRecord = record; } } return(results.AsQueryable()); }
public ExamQuestionRecordInfo AddQuestionRecord(int recordId, ExamQuestionRecordInfo recordInfo) { try { DbModel.ExamRecordQuestionDetailInfo saveInfo = new DbModel.ExamRecordQuestionDetailInfo(); saveInfo.RecordId = recordId; saveInfo.QuestionId = recordInfo.QuestionId; saveInfo.QuestionScore = recordInfo.QuestionScore; saveInfo.CreateUserId = recordInfo.CreateUser == null ? _loginUser.Id : recordInfo.CreateUser.Id; saveInfo.CreateDate = DateTime.Now; saveInfo = _questionRecordRepository.Create(saveInfo); recordInfo.Id = saveInfo.Id; foreach (ExamSolutionRecordInfo item in recordInfo.SolutionRecords) { AddSolutionRecord(recordId, recordInfo.Id, item); } } catch (Exception ex) { _log.LogError(ex, nameof(AddQuestionRecord)); throw; } return(recordInfo); }