private IEnumerable<SalesSummary> GetSalesSummary(SummaryRangeOption option) { var summaryRanges = GetSummaryRanges(option); var result = new List<SalesSummary>(); var merchantServicesData = GetMerchantServicesSalesSummaryTotalByMonth(summaryRanges.Last(), summaryRanges.First()); var prepaidData = GetPrepaidSalesSummaryTotalByMonth(summaryRanges.Last(), summaryRanges.First()); foreach (var summaryRange in summaryRanges) { var dateRange = Utils.GetFirst_LastDayRange(summaryRange); var prepaidTotal = prepaidData.ContainsKey(dateRange.StartDate.Month)? prepaidData[dateRange.StartDate.Month]: 0; var merchantServices = merchantServicesData.ContainsKey(dateRange.StartDate.Month)? merchantServicesData[dateRange.StartDate.Month]: 0; var range = GetRangeForSummary(summaryRange); var salesSummary = new SalesSummary { Month = range, MerchantServicesSalesSummary = merchantServices, PrepaidSalesSummary = prepaidTotal, }; result.Add(salesSummary); } return result; }
private IEnumerable<SummaryRange> GetSummaryRanges(SummaryRangeOption option) { var months = (int) option; for (var i = 0; i <= months; i++) { var newDate = DateTime.Now.AddMonths(i*(-1)); yield return new SummaryRange { Month = newDate.Month, Year = newDate.Year }; } }