public void Handle(SubmitPost submitPost) { var emailOfPoster = new EmailAddress(submitPost.EmailOfPoster); var discussionId = new DiscussionId(submitPost.DiscussionId); var discussion = _repository.GetById(discussionId); discussion.SubmitPost(emailOfPoster, submitPost.BodyText); _repository.Save(discussion); }
public HttpResponseMessage Post(Guid discussionId, [FromBody] SubmitPostInputModel model) { if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Provided data is invalid"); } var submitPost = new SubmitPost(discussionId, model.EmailOfPoster, model.BodyText); _bus.Send(submitPost); var response = Request.CreateResponse(HttpStatusCode.Created); response.Headers.Location = new Uri(Request.RequestUri, discussionId.ToString()); return response; }