private List <SummaryRevenue> GetSummaryRevenueByTime(DateTime from, DateTime to) { summaryRevenues = new List <SummaryRevenue>(); var newRevenues = revenues.Where(t => t.Key >= from && t.Key <= to).ToList(); for (DateTime date = from; date <= to; date = date.AddDays(1)) { SummaryRevenue sr = new SummaryRevenue() { Time = rdbByTime.Checked ? date.ToString("dd/MM/yyyy") : date.DayOfWeek.ToString(), Total = newRevenues.Where(t => t.Key == date).Sum(t => t.Value.Revenue), Tickets = newRevenues.Where(t => t.Key == date).SelectMany(t => t.Value.Tickets).ToList() }; summaryRevenues.Add(sr); } return(summaryRevenues); }
private List <SummaryRevenue> GetSummaryRevenueByYear() { summaryRevenues = new List <SummaryRevenue>(); var newRevenues = revenues.GroupBy(t => t.Key.Year).ToList(); foreach (var item in newRevenues) { SummaryRevenue sr = new SummaryRevenue() { Time = item.Key.ToString(), Total = item.Sum(t => t.Value.Revenue), Tickets = item.SelectMany(t => t.Value.Tickets).ToList() }; summaryRevenues.Add(sr); } return(summaryRevenues); }
private List <SummaryRevenue> GetSummaryRevenueByMonthOrQuarter(int year) { summaryRevenues = new List <SummaryRevenue>(); var newRevenues = revenues.Where(t => t.Key.Year == year).GroupBy(t => t.Key.Month).ToList(); if (rdbByMonth.Checked) { for (int i = 1; i < 13; i++) { var month = new DateTime(2018, i, 1).ToString("MMMM"); SummaryRevenue sr = new SummaryRevenue() { Time = month, Total = newRevenues.Where(t => t.Key == i).Sum(t => t.Sum(k => k.Value.Revenue)), Tickets = newRevenues.Where(t => t.Key == i).SelectMany(t => t.SelectMany(k => k.Value.Tickets)).ToList() }; summaryRevenues.Add(sr); } } else if (rdbByQuarter.Checked) { for (int i = 1; i <= 4; i++) { var from = (i * 2) + (i - 2); var to = i * 3; SummaryRevenue sr = new SummaryRevenue() { Time = $"Quater {i}", Total = newRevenues.Where(t => t.Key >= from && t.Key <= to).Sum(t => t.Sum(k => k.Value.Revenue)), Tickets = newRevenues.Where(t => t.Key >= from && t.Key <= to).SelectMany(t => t.SelectMany(k => k.Value.Tickets)).ToList() }; summaryRevenues.Add(sr); } } return(summaryRevenues); }