public override async Task <CommandResult> ProcessAsync(UpdateQuestion command) { var originalQuestion = await _reader.GetAsync(command.UpdatedQuestion.Id); if (originalQuestion == null) { throw new DomainValidationException(command.Id, "This question doesn't exist", 15) { Suggestion = "Create this question as a new question" } } ; var question = _domainValidator.FromDto(command.UpdatedQuestion, command.Id); question.Update(originalQuestion.Id, originalQuestion.CreatedBy, originalQuestion.CreatedOn, command.UpdatedQuestion.LastModifiedBy); var document = _dtoParser.Create(question); await _writer.CreateOrUpdateAsync(document); return(new IdentityResult(command.Id, originalQuestion.Id)); } }
public override async Task <CommandResult> ProcessAsync(AddQuestion command) { var id = Guid.NewGuid().ToString(); var question = _domainValidator.FromDto(command.NewQuestion, command.Id); question.Save(id, command.NewQuestion.CreatedBy); var document = _dtoParser.Create(question); await _writer.CreateOrUpdateAsync(document); return(new IdentityResult(command.Id, id)); }