Пример #1
0
        public async Task <bool> Handle(AskQuestionCommand request, CancellationToken cancellationToken)
        {
            var question = new QuestionEntity(
                request.Title,
                request.UserId,
                request.Tags
                );

            question.DefineId(request.Id);

            var questionBody = new AnswerEntity(
                request.Body,
                request.UserId,
                AnswerKind.QuestionBody,
                votes: 0
                );

            questionBody.DefineId(Guid.NewGuid());

            question.SetQuestionBody(questionBody);

            await _repository.RegisterAsync(question);

            return(true);
        }
Пример #2
0
        private void LoadAnswerFromModelToEntity(QuestionEntity entity, QuestionModel data)
        {
            data.Answers.ToList().ForEach(answer =>
            {
                var answerKind = (AnswerKind)answer.KindOf;
                switch (answerKind)
                {
                case AnswerKind.Answer:
                    var newAnswer = _answerFactory.Execute(answer);
                    entity.AddAnswer(newAnswer);
                    break;

                case AnswerKind.QuestionBody:
                    var questionBody = _answerFactory.Execute(answer);
                    entity.SetQuestionBody(questionBody);
                    break;

                case AnswerKind.Comment:
                    var newComment = _commentFactory.Execute(answer);
                    entity.AddComment(newComment);
                    break;
                }
            });
        }