public void Publish(PublishArticleCommand command) { var targetId = new ArticleId(command.AutherId); var targetArticleOpt = articleRepository.Find(targetId); targetArticleOpt.Match( article => article.Publish(), () => throw new ArticleCommandFailedException() ); }
public async Task <IActionResult> Publish([FromRoute] int articleId) { var command = new PublishArticleCommand(articleId); var result = await _mediator.Send(command); if (result == false) { return(NotFound()); } return(NoContent()); }