示例#1
0
        public async Task <AnswerDTO> AddAnswer(int questionId, string body, int userId)
        {
            var dateTime = DateTime.Now;
            var answer   = new Answer()
            {
                AuthorId          = userId,
                IsAnswer          = false,
                QuestionId        = questionId,
                Votes             = 0,
                DateOfPublication = dateTime,
                Body = body
            };
            await _answerRepository.CreateAsync(answer);

            await _unitOfWork.Commit();

            answer = await _answerRepository.GetByDate(userId, dateTime);

            return(_mapper.Map <AnswerDTO>(answer));
        }
示例#2
0
        public async Task <CreateAnswerResult> CreateAnswerAsync(CreateAnswerCommand command)
        {
            ThrowIfDisposed();
            QuestionEntity question = await QuestionRepository.GetQuestionAsync(command.QuestionId, CancellationToken);

            if (question == null || question.IsClosed || !question.IsVerified)
            {
                return(new CreateAnswerResult(new Error("Can't create answer", "Question is not valid.")));
            }

            AnswerEntity answerEntity = new AnswerEntity()
            {
                Description       = command.Description,
                CreateDateTimeUTC = DateTime.UtcNow,
                QuestionId        = question.QuestionId
            };

            await AnswerRepository.CreateAsync(answerEntity, CancellationToken);

            return(new CreateAnswerResult(answerEntity.QuestionId));
        }