Beispiel #1
0
        /// <summary>
        /// Creates new Tweet entity from 'replyText' and
        /// populates RepliesTo property with 'replyTo',
        /// and with its previous replies.
        /// </summary>
        /// <param name="replyText"></param>
        /// <param name="user"></param>
        /// <param name="replyTo"></param>
        /// <returns>Created Tweet entity (reply)</returns>
        public async Task <Tweet> AddReplyAsync(string replyText, TwitterCopyUser user, Tweet replyTo)
        {
            var replyFrom = new Tweet
            {
                Text      = replyText,
                User      = user,
                RepliesTo = new List <TweetToTweet>()
            };

            // Add main replyTo
            replyFrom.RepliesTo.Add(new TweetToTweet
            {
                ReplyFrom = replyFrom,
                ReplyTo   = replyTo
            });
            // Add reply to the RepliesTo property of the replyTo tweet
            // so that you reply not to one tweet but
            // to the whole 'conversation'
            foreach (var tweet in replyTo.RepliesTo)
            {
                replyFrom.RepliesTo.Add(new TweetToTweet
                {
                    ReplyFrom = replyFrom,
                    ReplyTo   = tweet.ReplyTo
                });
            }

            _tweetRepository.Add(replyFrom);
            await _tweetRepository.SaveAsync();

            return(replyFrom);
        }