async Task LoadTweets(Data.Model.TwitterUser twitterUser) { var lastTweetId = await _twitterRepository .GetLastMessageIdAsync(twitterUser.TwitterId); var result = new List <Data.Model.Tweet>(); var lastTweetIdToFilter = lastTweetId > 0 ? lastTweetId : (long?)null; IEnumerable <TwitterStatus> tweets = null; tweets = _twitterService.ListTweetsOnUserTimeline(CreateTimeLineOptions(twitterUser.TwitterId, lastTweetIdToFilter, null)); result.AddRange(tweets .Select(i => ParseFromTwitterStatus(twitterUser.Id, i))); // Paginate if there are more tweets to load while (tweets.Count() > 1) { var lastId = tweets .Min(i => i.Id); tweets = _twitterService.ListTweetsOnUserTimeline(CreateTimeLineOptions(twitterUser.TwitterId, lastTweetIdToFilter, lastId)); result.AddRange(tweets .Select(i => ParseFromTwitterStatus(twitterUser.Id, i))); } await _twitterRepository.AddAsync(result); }