public void CalculateMonthlyTop(string database, DateTime from) { List <Behavior> monthlyBehaviors = _db.GetMonthlyBehaviors(database, from).Result; Dictionary <int, int> behaviors = new Dictionary <int, int>(); Dictionary <int, int> sortedBehaviors = countAndSortBehavior(monthlyBehaviors, behaviors); int length = 20; if (sortedBehaviors.Count < length) { length = sortedBehaviors.Count; } List <int> top20Products = new List <int>(); for (int i = 0; i < length; i++) { top20Products.Add(sortedBehaviors.Keys.ElementAt(i)); } _db.StoreTop20Products(top20Products, database); }