public async Task <IActionResult> UpdateExam(CancellationToken cancellationToken, IEnumerable <ExamResultUpdateModel> model) { var command = new ExamResultCommand <IEnumerable <ExamResultUpdateModel> >(model); var result = await Mediator.Send(command, cancellationToken).ConfigureAwait(false); return(new OkObjectResult(new { Data = result, Status = StatusCodes.Status200OK })); }
protected override async Task <IEnumerable <ExamResultReadModel> > ProcessAsync(ExamResultCommand <ExamResultCreateModel> message, CancellationToken cancellationToken) { var exam = await _dataContext.TrainingExams .ProjectTo <TrainingExamReadModel>(_configurationProvider) .ToListAsync(cancellationToken) .ConfigureAwait(false); if (exam.Count == 0) { throw new DomainException(422, $"Training Exam is null., Please Create question in exam module.,"); } var dbSet = _dataContext.Set <Data.Entities.TraineeExamResult>(); foreach (var item in exam) { var map = _mapper.Map(item, message.Exam); dbSet.AddIfNotExists(x => new { x.Id, x.QuestionId, x.CourseId, x.UserId }, _mapper.Map <TraineeExamResult>(map)); } var result = await _dataContext .SaveChangesAsync(cancellationToken) .ConfigureAwait(false); var examresult = _dataContext.ExamResults.Include(x => x.Question) .Where(x => x.UserId == message.Exam.UserId && x.CourseId == message.Exam.CourseId); return(_mapper.Map <IEnumerable <ExamResultReadModel> >(examresult)); }
protected override async Task <IEnumerable <ExamResultReadModel> > ProcessAsync(ExamResultCommand <IEnumerable <ExamResultUpdateModel> > message, CancellationToken cancellationToken) { var exam = await _dataContext.TrainingExams .ToListAsync(cancellationToken) .ConfigureAwait(false); if (exam.Count == 0) { throw new DomainException(422, $"Training Exam is null., Please Create question in exam module.,"); } var current = message.Exam.FirstOrDefault(); var result = await _dataContext.ExamResults .Where(x => x.CourseId.Equals(current.CourseId) && x.UserId.Equals(current.UserId)).ToListAsync(); _mapper.Map(message.Exam, result.AsEnumerable()); foreach (var item in exam) { foreach (var answer in message.Exam) { if (item.Id == answer.QuestionId) { foreach (var r in result) { if (answer.Id == r.Id) { if (answer.Answer == item.Answer) { } } } } } } return(null); }