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);
    }
예제 #2
0
    private void RefreshGrid()
    {
        if (!MainContext.IsPostBack)
        {
            uxPagingControl.ItemsPerPages = AdminConfig.OrderItemsPerPage;
        }
        int totalItems;

        _errorFlag = false;

        PeriodType         period             = ReportFilterUtilities.ConvertToPeriodType(uxPeriodDrop.SelectedValue);
        CustomerReportType customerReportType = ReportFilterUtilities.ConvertToCustomerReportType(uxReportDrop.SelectedValue);

        if (period == PeriodType.Custom)
        {
            string errorMessage;
            if (VerifyCustomInput(out errorMessage))
            {
                LoadCustomInput();
            }
            else
            {
                uxMessage.DisplayError(errorMessage);
                uxMessage1.Visible = false;
                _errorFlag         = true;
                return;
            }
        }
        else
        {
            ReportFilterUtilities.GetOrderDateRange(period, out _startOrderDate, out _endOrderDate);
        }


        CustomerReportBuilder customerReportBuilder = new CustomerReportBuilder();

        if (customerReportType != CustomerReportType.UserRegistration)
        {
            _table = customerReportBuilder.GetTopCustomerReportData(
                GridHelper1.GetFullSortText(),
                period,
                customerReportType,
                uxNumberItemsDrop.SelectedItem.ToString(),
                _startOrderDate,
                _endOrderDate,
                uxPagingControl.StartIndex,
                uxPagingControl.EndIndex,
                out totalItems);

            uxTopCustomerGrid.DataSource = _table;
            uxTopCustomerGrid.DataBind();
            uxTopCustomerGrid.Visible = true;
            uxGrid.Visible            = false;
            uxPadding.Visible         = false;

            if (_table.Rows.Count > 0)
            {
                uxTitleLabel.Visible = true;
                setTitle();
            }
            else
            {
                uxTitleLabel.Visible = false;
            }
        }
        else
        {
            _table = customerReportBuilder.GetCustomerReportData(
                GridHelper.GetFullSortText(),
                period,
                _startOrderDate,
                _endOrderDate,
                uxPagingControl.StartIndex,
                uxPagingControl.EndIndex,
                out totalItems);

            uxGrid.DataSource = _table;
            uxGrid.DataBind();
            uxGrid.Visible            = true;
            uxTopCustomerGrid.Visible = false;
            uxPadding.Visible         = true;
            uxTitleLabel.Visible      = false;
        }

        uxPagingControl.NumberOfPages = (int)Math.Ceiling((double)totalItems / uxPagingControl.ItemsPerPages);
        setCustomDateDisplay();
    }