private void BtnWeeklyReport_Click(object sender, EventArgs e)
        {
            List <VisitorsInformation> list = new List <VisitorsInformation>();

            using (Stream stream = new FileStream("CheckoutsInformation.csv", FileMode.Open, FileAccess.Read))
            {
                CsvChecker <VisitorsInformation> cs = new CsvChecker <VisitorsInformation>()
                {
                    UseTextQualifier = true,
                };
                list = cs.ReadFromFile(stream);
            }

            var dateFrom = weeklyDatePicker.Value.Date;
            int dayindex = (int)dateFrom.DayOfWeek;
            int diff     = 5 - dayindex;
            var dateTo   = dateFrom.AddDays(diff);


            List <VisitorsInformation> filteredList = new List <VisitorsInformation>();

            foreach (VisitorsInformation v in list)
            {
                var date = DateTime.ParseExact(v.EntryDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                if (date >= dateFrom && date <= dateTo)
                {
                    DateTime outTime = DateTime.Parse(v.CheckOutTime);
                    DateTime inTime  = DateTime.Parse(v.CheckInTime);
                    TimeSpan diffT   = (outTime - inTime);
                    v.TotalDuration = Math.Round(diffT.TotalMinutes, 2);
                    v.Day           = date.DayOfWeek.ToString();
                    filteredList.Add(v);
                }
            }

            List <ReportsWeekly> weekReport = GetWeekReport(filteredList);

            reportChart.Series.Clear();
            reportChart.Series.Add("Total Time Spent (In Minutes)");

            foreach (ReportsWeekly report in weekReport)
            {
                reportChart.Series["Total Time Spent (In Minutes)"].Points.AddXY(report.Day, report.TotalTimeSpent);
            }
            reportChart.Show();

            MuseumManagementSystem.SortingAlgorithm sort        = new MuseumManagementSystem.SortingAlgorithm();
            BindingList <ReportsWeekly>             bindingList = new BindingList <ReportsWeekly>(sort.QuickSortByTotalVisitor(weekReport));
            BindingSource source = new BindingSource(bindingList, null);

            dispReportGridView.DataSource = source;
            dispReportGridView.Show();
        }
        private void BtnDailyList_Click(object sender, EventArgs e)
        {
            List <VisitorsInformation> list = new List <VisitorsInformation>();

            using (Stream stream = new FileStream("CheckoutsInformation.csv", FileMode.Open, FileAccess.Read))
            {
                CsvChecker <VisitorsInformation> cs = new CsvChecker <VisitorsInformation>()
                {
                    UseTextQualifier = true,
                };
                list = cs.ReadFromFile(stream);
            }

            var date = reportDatePicker.Value.Date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
            List <VisitorsInformation> filteredList = new List <VisitorsInformation>();

            foreach (VisitorsInformation v in list)
            {
                if (v.EntryDate.Equals(date))
                {
                    DateTime outTime = DateTime.Parse(v.CheckOutTime);
                    DateTime inTime  = DateTime.Parse(v.CheckInTime);
                    TimeSpan diff    = (outTime - inTime);
                    v.TotalDuration = Math.Round(diff.TotalMinutes, 2);
                    v.Day           = reportDatePicker.Value.DayOfWeek.ToString();
                    filteredList.Add(v);
                }
            }

            MuseumManagementSystem.SortingAlgorithm sort = new MuseumManagementSystem.SortingAlgorithm();
            filteredList = sort.QuickSortByInTime(filteredList);

            BindingList <VisitorsInformation> bindingList = new BindingList <VisitorsInformation>(filteredList);
            BindingSource source = new BindingSource(bindingList, null);

            dispReportGridView.DataSource = source;
            dispReportGridView.Show();
            reportChart.Hide();
        }