コード例 #1
0
    private DataTable CreateDataAndLabel(DateTime startOrderDate, DateTime endOrderDate)
    {
        DateTime              day;
        int                   numDay;
        DataTable             table = new DataTable();
        CustomerReportBuilder customerReportBuilder = new CustomerReportBuilder();

        if (Period == PeriodType.LastMonth)
        {
            day    = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1);
            numDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1).Day;
            table  = customerReportBuilder.GetCustomerReport(startOrderDate, endOrderDate);
            CreateMonthData(table, day, numDay);
        }
        else if (Period == PeriodType.Last30Days)
        {
            day    = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddDays(-30);
            numDay = 30;
            table  = customerReportBuilder.GetCustomerReport(startOrderDate, endOrderDate);
            CreateMonthData(table, day, numDay);
        }
        else if (Period == PeriodType.Last7Days)
        {
            day    = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddDays(-7);
            numDay = 7;
            table  = customerReportBuilder.GetCustomerReport(startOrderDate, endOrderDate);
            CreateMonthData(table, day, numDay);
        }
        else if (Period == PeriodType.Today)
        {
            day   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
            table = customerReportBuilder.GetOneDayCustomerReport(startOrderDate, endOrderDate);
            CreateDayData(table, day);
        }
        else if (Period == PeriodType.Yesterday)
        {
            day   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0).AddDays(-1);
            table = customerReportBuilder.GetOneDayCustomerReport(startOrderDate, endOrderDate);
            CreateDayData(table, day);
        }
        else if (Period == PeriodType.Last24Hours)
        {
            day   = DateTime.Now.AddHours(-23);
            table = customerReportBuilder.Get24HoursCustomerReport(startOrderDate, endOrderDate);
            CreateDayData(table, day);
        }
        else if (Period == PeriodType.ThisMonth)
        {
            day    = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            numDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddSeconds(-1).Day;
            table  = customerReportBuilder.GetCustomerReport(startOrderDate, endOrderDate);
            CreateMonthData(table, day, numDay);
        }
        else if (Period == PeriodType.ThisYear)
        {
            day = new DateTime(DateTime.Now.Year, 1, 1);
            int numMonth = 12;
            table = customerReportBuilder.GetYearCustomerReport(startOrderDate, endOrderDate);
            CreateYearData(table, day, numMonth);
        }
        else if (Period == PeriodType.Last3Years)
        {
            day = new DateTime(DateTime.Now.Year, 1, 1).AddYears(-2);
            int numMonth = 36;
            table = customerReportBuilder.GetYearCustomerReport(startOrderDate, endOrderDate);
            CreateYearData(table, day, numMonth);
        }
        else if (Period == PeriodType.Custom)
        {
            PeriodType customPeriod = ReportFilterUtilities.ResolveCustomPeriodType(startOrderDate, endOrderDate);
            if (customPeriod == PeriodType.ThisYear)
            {
                day = new DateTime(startOrderDate.Year, startOrderDate.Month, startOrderDate.Day);
                int yearDiff  = endOrderDate.Year - startOrderDate.Year;
                int monthDiff = endOrderDate.Month - startOrderDate.Month;
                yearDiff = yearDiff * 12;
                int numMonth = yearDiff + monthDiff;
                table = customerReportBuilder.GetYearCustomerReport(startOrderDate, endOrderDate);
                CreateYearData(table, day, numMonth + 1);
            }
            else if (customPeriod == PeriodType.Today)
            {
                table = customerReportBuilder.GetOneDayCustomerReport(startOrderDate, endOrderDate);
                CreateDayData(table, startOrderDate);
            }
            else
            {
                TimeSpan dateDifference = endOrderDate.Subtract(startOrderDate);
                int      days           = dateDifference.Days;
                table = customerReportBuilder.GetCustomerReport(startOrderDate, endOrderDate);
                CreateMonthData(table, startOrderDate, days + 1);
            }
        }
        return(table);
    }