Пример #1
0
        protected override GetAnswersQueryResult Handle(GetAnswersQuery request)
        {
            var answers = DbContext.Answers.AsNoTracking().Where(t => t.QuestionId.Equals(request.QuestionId)).ToList();

            return(new GetAnswersQueryResult
            {
                Answers = _dtoConverter.Convert(answers)
            });
        }
        protected override GetAnswerQueryResult Handle(GetAnswerQuery request)
        {
            var answer = DbContext.Answers.AsNoTracking().FirstOrDefault(t => t.Id.Equals(request.Id));

            return(new GetAnswerQueryResult
            {
                Answer = _dtoConverter.Convert(answer)
            });
        }
Пример #3
0
        protected override GetTestAttemptQueryResult Handle(GetTestAttemptQuery request)
        {
            var test = DbContext.Tests.AsNoTracking().Where(t => t.Id.Equals(request.Id))
                       .Include(t => t.Questions)
                       .ThenInclude(q => q.Answers)
                       .FirstOrDefault();

            return(new GetTestAttemptQueryResult
            {
                Test = _testDtoConverter.Convert(test),
                Questions = test?.Questions.Select(q => _questionDtoConverter.Convert(q)),
                Answers = test?.Questions.SelectMany(q => q.Answers.Select(a => _answerDtoConverter.Convert(a)))
            });
        }
Пример #4
0
        public async Task <IActionResult> Post([FromBody] AnswerViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(new StatusCodeResult(500));
            }

            try
            {
                await _commandDispatcher.DispatchAsync <AddAnswerCommand>(new AddAnswerCommand
                {
                    Answer = _dtoConverter.Convert(viewModel)
                });

                return(Ok());
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new { ErrorMessage = ex.Message }));
            }
        }