コード例 #1
0
        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);
        }