public TweetStatistics GetTweetStatistics() { int numberOfTopItems = 5;// for test - you set it as a config if (!_tweetAnalyticsData.ContainsKey(_tweetSummaryKey)) { return(new TweetStatistics()); } var tweetAnalytics = _tweetAnalyticsData[_tweetSummaryKey]; var tweetStatistics = new TweetStatistics() { TotalTweetsRecieved = tweetAnalytics.TotalTweetsRecieved, AverageTweetsPerHour = tweetAnalytics.GetTotalTweetsPerTimeInterval(TimeInterval.Hours), AverageTweetsPerMinute = tweetAnalytics.GetTotalTweetsPerTimeInterval(TimeInterval.Minutes), AverageTweetsPerSecond = tweetAnalytics.GetTotalTweetsPerTimeInterval(TimeInterval.Seconds), PercentageOfTweetsWithPhoto = tweetAnalytics.GetPercentageOfTweetsWithContentType(ContentType.Photo), PercentageOfTweetsWithUrl = tweetAnalytics.GetPercentageOfTweetsWithContentType(ContentType.Url), PercentageOfTweetsWithEmojis = tweetAnalytics.GetPercentageOfTweetsWithContentType(ContentType.Emoji), TopUrDomains = _urlData.OrderByDescending(x => x.Value).ThenBy(x => x.Key).Take(numberOfTopItems).Select(x => new NoOfUses <string> { Item = x.Key, Uses = x.Value }), TopHashTags = _hastTagData.OrderByDescending(x => x.Value).ThenBy(x => x.Key).Take(numberOfTopItems).Select(x => new NoOfUses <string> { Item = x.Key, Uses = x.Value }), TopEmojis = _emjoiData.OrderByDescending(x => x.Value).ThenBy(x => x.Key).Take(numberOfTopItems).Select(x => new NoOfUses <string> { Item = x.Key, Uses = x.Value }), }; return(tweetStatistics); }
public ActionResult GetTweetStatistics() { TweetStatistics statistics = _twitterService.GetTweetStatistics(); return(Ok(statistics)); }