Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }