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); }
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; } }); }