コード例 #1
0
        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
            }));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }