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