Пример #1
0
        public void AnsweredQuestionModelValidationTest(int answerId, int questionId, bool expectedResult)
        {
            var answeredQuestion = new AnsweredQuestionModel
            {
                AnswerId   = answerId,
                QuestionId = questionId
            };

            var validation = new AnsweredQuestionModelValidation();
            var result     = validation.Validate(answeredQuestion);

            Assert.IsTrue(result.IsValid == expectedResult);
        }
Пример #2
0
        public async Task <IActionResult> AnswerQuestionAsync([FromBody] AnsweredQuestionModel answeredQuestion)
        {
            int userId = (int)this.GetLoggedUserId();
            var answeredQuestionEntity = _mapper.Map <AnsweredQuestion>(answeredQuestion);

            answeredQuestionEntity.UserId = userId;

            try
            {
                await _questionService.SaveAnsweredQuestionAsync(answeredQuestionEntity);

                await _rankingService.UpdateRankingAfterUserAnswerAsync(answeredQuestionEntity);

                return(NoContent());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Пример #3
0
        public async Task <IActionResult> AnswerQuestionAsync([FromBody] AnsweredQuestionModel answeredQuestion)
        {
            int userId = (int)this.GetLoggedUserId();
            var answeredQuestionEntity = _mapper.Map <AnsweredQuestion>(answeredQuestion);

            answeredQuestionEntity.UserId = userId;

            try
            {
                var resultQuestion = await _questionService.SaveAnsweredQuestionAsync(answeredQuestionEntity);

                if (resultQuestion.Result)
                {
                    var resultRanking = await _rankingService.UpdateRankingAfterUserAnswerAsync(answeredQuestionEntity);

                    if (resultRanking.Result)
                    {
                        return(Ok(resultQuestion));
                    }
                    else
                    {
                        return(BadRequest(resultRanking));
                    }
                }
                else
                {
                    return(BadRequest(resultQuestion));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(new ProcessResult {
                    Message = e.Message, Result = false
                }));
            }
        }