public void PostComment(Comment comment) { CheckIfCreated(); var payload = new { Id = comment.Id, AuthorId = comment.Author.Id, Content = comment.Content, PostedOn = comment.PostedOn }; var jsonPayload = JsonConvert.SerializeObject(payload); var commentPostedEvent = new ProjectCommentPostedEvent( Id, Version + 1, jsonPayload); Apply(commentPostedEvent); }
public void Handle(ProjectCommentPostedEvent domainEvent) { LogToConsole(domainEvent); dynamic eventData = JsonConvert.DeserializeObject(domainEvent.JsonPayload); var query = new GetUserQuery((Guid)eventData.AuthorId); dynamic user = JsonConvert.DeserializeObject(_bus.PublishQuery(query)); // TODO: add usernames. var newComment = new Comment { ProjectId = domainEvent.AggregateId, AuthorId = (Guid)eventData.AuthorId, AuthorName = (string)user.UserName, PostedOn = (DateTime)eventData.PostedOn, Content = (string)eventData.Content }; _commentRepository.Add(newComment); }