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);
        }