public async Task PullDirectMessages(SocialAccount account) { int maxNumberOfMessagesRetrieve = 50; DateTime since = DateTime.UtcNow.AddHours(-1); _twitterClient.SetUserCredentials(account.Token, account.TokenSecret); var recivedMessages = PullReceivedDirectMessages(account, maxNumberOfMessagesRetrieve, since); var sentMessages = PullSentDirectMessages(account, maxNumberOfMessagesRetrieve, since); var messages = recivedMessages.Concat(sentMessages).OrderBy(t => t.CreatedAt); foreach (var message in messages) { TwitterProcessResult result = null; await UnitOfWorkManager.RunWithNewTransaction(account.SiteId, async() => { result = await _twitterService.ProcessDirectMessage(account, message); }); if (result != null) { await result.Notify(account.SiteId); } } }
public Message GetTweetMessage(SocialAccount account, long tweetId) { _twitterClient.SetUserCredentials(account.Token, account.TokenSecret); var tweet = _twitterClient.GetTweet(tweetId); if (tweet == null) { return(null); } var message = TwitterConverter.ConvertToMessage(tweet); message.Sender = new SocialUser { Name = tweet.CreatedBy.Name, Avatar = tweet.CreatedBy.ProfileImageUrl, ScreenName = tweet.CreatedBy.ScreenName, OriginalId = tweet.CreatedBy.IdStr, OriginalLink = TwitterHelper.GetUserUrl(tweet.CreatedBy.ScreenName) }; return(message); }