Exemple #1
0
        public bool Load(OrderAddressListFilter enmOrderAddressListFilter, OrderAddressListDateRangeFilterType enmOrderAddressListDateRangeFilterType = OrderAddressListDateRangeFilterType.None, DateTime?dteStartDate = null, DateTime?dteEndDate = null, string strDynamicSearchWhereClause = "", int?intPageNumber = null, int?intPageSize = null)
        {
            _enmOrderAddressListFilter = enmOrderAddressListFilter;
            _enmOrderAddressListDateRangeFilterType = enmOrderAddressListDateRangeFilterType;
            _dteStartDate = dteStartDate;
            _dteEndDate   = dteEndDate;
            _strDynamicSearchWhereClause = strDynamicSearchWhereClause;

            _intPageNumber = intPageNumber;
            _intPageSize   = intPageSize;

            try
            {
                switch (_enmOrderAddressListFilter)
                {
                case OrderAddressListFilter.Current:
                    LoadApplicableOrderAddressesFromDB();
                    break;

                case OrderAddressListFilter.Issues:
                    LoadApplicableOrderAddressesFromDB();
                    break;

                case OrderAddressListFilter.AllNonIssuesInWorkflow:
                    LoadApplicableOrderAddressesFromDB();
                    break;

                case OrderAddressListFilter.Search:
                    LoadDynamicSearchResultOrderAddressesFromDB();
                    break;

                default:
                    throw new Exception("The order address list filter type was unrecognized.  A coder messed up.");
                }
            }
            catch (Exception ex)
            {
                _lstErrorMessages.Add(String.Concat("There was an error while trying to LOAD the list of order addresses from the database.  ", _strBaseLoggingMessage, ",  Error Message: [", ex.Message, "]"));
            }

            _blnIsLoaded = _lstErrorMessages.Count() == 0;

            // return
            return(_blnIsLoaded);
        }
        // Data Grid
        protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            RadGrid1.MasterTableView.NoMasterRecordsText = "No Records Found";

            DateTime?dteCurrentOrders_Filter_StartDate = null;
            DateTime?dteCurrentOrders_Filter_EndDate   = null;

            // Get the base date value taht's used for date range driven lists.  Get the value from the asPx page that holds this user control (this control is shared)
            if ((this.Page as dynamic).BaseDateForOrderAddressListFilter != null)
            {
                // This routine converts to CST internally, so we should supply UTC here....
                if (OrderDateRangeCalculator.CalcCurrentDateRangeDate((this.Page as dynamic).BaseDateForOrderAddressListFilter, out dteCurrentOrders_Filter_StartDate, out dteCurrentOrders_Filter_EndDate) == false)
                {
                    lblErrorMessage.Text += "The 'Current Orders' date range could NOT be calculated, and so the order address list cannot be loaded.";
                    return;
                }
            }

            // Set the datagrid paging properties if this is NOT a postback and if the appropriate values appear in the querystring
            int?intPageNumber;  // Add one to our zero based index since the underlying proc expects a 1-based index
            int?intPageSize;

            // If this is a clean, full page load
            if (SetPaging())
            {
                if (string.IsNullOrEmpty(_strQSParamValue_PageNumber) == false)
                {
                    RadGrid1.CurrentPageIndex = int.Parse(_strQSParamValue_PageNumber);
                    RadGrid1.PageSize         = int.Parse(_strQSParamValue_PageSize);
                }
            }

            intPageNumber = RadGrid1.CurrentPageIndex + 1; // Add one to our zero based index since the underlying proc expects a 1-based index
            intPageSize   = RadGrid1.PageSize;

            OrderAddressListLoader objOrderAddressListLoader = new OrderAddressListLoader();

            if (objOrderAddressListLoader.Load((this.Page as dynamic).OrderAddressListFilter, (this.Page as dynamic).OrderAddressListDateRangeFilterType, dteCurrentOrders_Filter_StartDate, dteCurrentOrders_Filter_EndDate, _strWhereClauseDecoded, intPageNumber, intPageSize))
            {
                RadGrid1.DataSource       = objOrderAddressListLoader.OrderAddresses;
                RadGrid1.VirtualItemCount = objOrderAddressListLoader.TotalRecordCount;
            }
            else
            {
                // Display an error message
                lblErrorMessage.Text = String.Concat("There was an ERROR while trying to retrieve the payment list from the DB.  Error Message = [", String.Join(",", objOrderAddressListLoader.ErrorMessages.ToArray()), "]");
            }

            string strListHeaderText = String.Empty;
            OrderAddressListFilter objPaymentListFilter = (this.Page as dynamic).OrderAddressListFilter; // Get the value from the aspx that holds this user control, which determines some of the variables that go into determining which records to load into the list

            switch (objPaymentListFilter)
            {
            case OrderAddressListFilter.Current:
                strListHeaderText = "Recent Order Addresses (ORDER DATE within the Last 2 weeks;  All Statuses)";
                break;

            case OrderAddressListFilter.Issues:
                strListHeaderText = "All Order Addresses that are FAILING and/or that NEED USER INTERVENTION";
                break;

            case OrderAddressListFilter.AllNonIssuesInWorkflow:
                strListHeaderText = "All Order Addresses Moving through the Migration Workflow (Non Issues; 'OK' Orders Accross all time)";
                break;

            case OrderAddressListFilter.Search:
                strListHeaderText = "Search Results";
                break;

            default:
                throw new Exception("Unexpected case encountered during the execution of a switch statement.  Did the developer add a list filter type but forget to add a case for the type?  Please have a developer investigate this issue.");
            }

            lblListTitle.InnerText = strListHeaderText;
        }