public override void Execute()
        {
            String serarchValue = CommonHelper.GetSearchValue(base.HttpContext);

            OrderRequestedListState orderRequestedListState = null;

            if (base.HttpContext != null && base.HttpContext.Session[SessionHelper.OrderRequestedListState] != null)
            {
                orderRequestedListState = ( OrderRequestedListState )base.HttpContext.Session[SessionHelper.OrderRequestedListState];
            }
            else
            {
                orderRequestedListState = new OrderRequestedListState();
            }

            FilterViewModel filterViewModel = null;

            if (base.HttpContext != null && base.HttpContext.Session[SessionHelper.FilterViewModel] != null)
            {
                filterViewModel = new FilterViewModel().FromXml(base.HttpContext.Session[SessionHelper.FilterViewModel].ToString());
                filterViewModel.FilterContext = Helpers.Enums.FilterContextEnum.OrderRequested;
            }
            else
            {
                filterViewModel = new FilterViewModel();
                filterViewModel.FilterContext = Helpers.Enums.FilterContextEnum.OrderRequested;
            }

            Boolean refresh = InputParameters != null && InputParameters.ContainsKey("Refresh") && InputParameters["Refresh"].ToString().Trim() == "true";

            if (!refresh)
            {
                orderRequestedListState.CurrentPage = 1;
            }

            UserAccount user = null;

            if (base.HttpContext.Session[SessionHelper.UserData] != null)
            {
                user = ( UserAccount )base.HttpContext.Session[SessionHelper.UserData];
            }
            else
            {
                throw new InvalidOperationException("UserData is null");
            }

            OrderRequestedViewModel orderRequestedViewModel = new OrderRequestedViewModel();

            orderRequestedViewModel = OrderRequestedDataHelper.RetrieveOrderRequestedViewModel(orderRequestedListState,
                                                                                               base.HttpContext.Session[SessionHelper.UserAccountIds] != null
                            ? (List <int>)base.HttpContext.Session[SessionHelper.UserAccountIds]
                            : new List <int> {
            }, user.UserAccountId, filterViewModel.CompanyId, filterViewModel.ChannelId, filterViewModel.DivisionId, filterViewModel.BranchId, serarchValue);

            OrderRequestedGridHelper.ProcessPagingOptions(orderRequestedListState, orderRequestedViewModel);
            OrderRequestedGridHelper.ApplyClassCollection(orderRequestedViewModel);

            ViewName = "Queues/_orderRequested";
            ViewData = orderRequestedViewModel;

            /* Persist new state */
            base.HttpContext.Session[SessionHelper.OrderRequestedViewModel] = orderRequestedViewModel.ToXml();
            base.HttpContext.Session[SessionHelper.OrderRequestedListState] = orderRequestedListState;
            base.HttpContext.Session[SessionHelper.FilterViewModel]         = filterViewModel.ToXml();
            base.HttpContext.Session[SessionHelper.CurrentTab] = LoanCenterTab.OrderRequested;
        }
        public override void Execute()
        {
            var searchValue = CommonHelper.GetSearchValue(base.HttpContext);

            /* State retrieval */
            var orderRequestedViewModel =
                base.HttpContext.Session[SessionHelper.OrderRequestedViewModel] != null ?
                new OrderRequestedViewModel().FromXml(base.HttpContext.Session[SessionHelper.OrderRequestedViewModel].ToString()) :
                new OrderRequestedViewModel();

            OrderRequestedListState orderRequestedListState;

            if (base.HttpContext.Session[SessionHelper.OrderRequestedListState] != null)
            {
                orderRequestedListState = ( OrderRequestedListState )base.HttpContext.Session[SessionHelper.OrderRequestedListState];
            }
            else
            {
                orderRequestedListState = new OrderRequestedListState();
            }

            UserAccount user;

            if (base.HttpContext.Session[SessionHelper.UserData] != null && (( UserAccount )base.HttpContext.Session[SessionHelper.UserData]).Username == base.HttpContext.User.Identity.Name)
            {
                user = ( UserAccount )base.HttpContext.Session[SessionHelper.UserData];
            }
            else
            {
                user = UserAccountServiceFacade.GetUserByName(base.HttpContext.User.Identity.Name);
            }

            if (user == null)
            {
                throw new InvalidOperationException("User is null");
            }

            FilterViewModel filterViewModel = null;

            if (base.HttpContext != null && base.HttpContext.Session[SessionHelper.FilterViewModel] != null)
            {
                filterViewModel = new FilterViewModel().FromXml(base.HttpContext.Session[SessionHelper.FilterViewModel].ToString());
                filterViewModel.FilterContext = Helpers.Enums.FilterContextEnum.OrderRequested;
            }
            else
            {
                filterViewModel = new FilterViewModel();
                filterViewModel.FilterContext = Helpers.Enums.FilterContextEnum.OrderRequested;
            }

            /* parameter processing */
            OrderRequestedAttribute newSortColumn;

            if (!InputParameters.ContainsKey("Column"))
            {
                throw new ArgumentException("Column value was expected!");
            }

            newSortColumn = ( OrderRequestedAttribute )Enum.Parse(typeof(OrderRequestedAttribute), InputParameters["Column"].ToString());

            // switch direction
            if (orderRequestedListState.SortColumn == newSortColumn && orderRequestedListState.SortDirection == "ASC")
            {
                orderRequestedListState.SortDirection = "DESC";
            }
            else
            {
                orderRequestedListState.SortDirection = "ASC";
            }

            orderRequestedListState.SortColumn  = newSortColumn;
            orderRequestedListState.CurrentPage = 1;

            /* Command processing */

            var orderRequestedViewData = OrderRequestedDataHelper.RetrieveOrderRequestedViewModel(orderRequestedListState,
                                                                                                  base.HttpContext.Session[SessionHelper.UserAccountIds] !=
                                                                                                  null
                                                                                    ? (List <int>)
                                                                                                  base.HttpContext.Session[
                                                                                                      SessionHelper.UserAccountIds]
                                                                                    : new List <int> {
            },
                                                                                                  user.UserAccountId, filterViewModel.CompanyId, filterViewModel.ChannelId, filterViewModel.DivisionId, filterViewModel.BranchId, searchValue);


            if (orderRequestedViewModel != null)
            {
                orderRequestedViewModel.RequestedOrders = orderRequestedViewData.RequestedOrders;
                orderRequestedViewModel.PageCount       = orderRequestedViewData.PageCount;
                orderRequestedViewModel.TotalItems      = orderRequestedViewData.TotalItems;

                OrderRequestedGridHelper.ProcessPagingOptions(orderRequestedListState, orderRequestedViewModel);
            }


            ViewName = "Queues/_orderRequested";
            ViewData = orderRequestedViewModel;

            /* Persist new state */
            base.HttpContext.Session[SessionHelper.OrderRequestedViewModel] = orderRequestedViewModel.ToXml();
            base.HttpContext.Session[SessionHelper.OrderRequestedListState] = orderRequestedListState;
        }