public Comment ReplyToComment(Board board, FeedItem feedItem, JunaUser user, string timeStamp, string replyComment, Comment parentComment) { var activity = new CommentBuilder() .WithActor(user) .WithVerb(BoardInteractionMetadata.INTERACTION_COMMENT) .WithObject(feedItem) .WithTarget(board) .WithTime(DateTime.Parse(timeStamp)) .WithParentCommentId(parentComment) .WithMessage(replyComment) .Build(); var replyCommentActivity = _commentsRepository.Save(activity); var boardFeed = _streamClient.Feed(FeedGroup.BoardFeedType, StreamHelper.GetStreamActorId(replyCommentActivity)); var streamActivity = new Stream.Activity(replyCommentActivity.Actor, replyCommentActivity.Verb, replyCommentActivity.Object) { Target = replyCommentActivity.Target, ForeignId = replyCommentActivity.Id.ToString(), }; streamActivity.SetData("Message", replyCommentActivity.Message); boardFeed.AddActivity(streamActivity); // Move this to a database trigger or a change feed processor if (feedItem.Interactions == null) { feedItem.Interactions = new InteractionMetadata { Likes = 0, Shares = 0, Pins = 0, Comments = 0 } } ; feedItem.Interactions.Comments++; _feedItemRepository.Upsert(feedItem); return(replyCommentActivity); }