public void Execute()
        {
            String searchValue = CommonHelper.GetSearchValue(_httpContext);

            /* State retrieval */
            MailRoomViewModel mailRoomViewModel = null;

            if (_httpContext.Session[SessionHelper.MailRoomViewModel] != null)
            {
                mailRoomViewModel = new MailRoomViewModel().FromXml(_httpContext.Session["MailRoomViewModel"].ToString());
            }
            else
            {
                mailRoomViewModel = new MailRoomViewModel();
            }

            MailRoomListState mailRoomListState = null;

            if (_httpContext.Session[SessionHelper.MailRoomListState] != null)
            {
                mailRoomListState = ( MailRoomListState )_httpContext.Session["MailRoomListState"];
            }
            else
            {
                mailRoomListState = new MailRoomListState();
            }

            UserAccount user = null;

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

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

            /* parameter processing */
            MailRoomAttribute newSortColumn;

            if (!InputParameters.ContainsKey("Column"))
            {
                throw new ArgumentException("Column value was expected!");
            }
            else
            {
                newSortColumn = ( MailRoomAttribute )Enum.Parse(typeof(MailRoomAttribute), InputParameters["Column"].ToString());
            }

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

            mailRoomListState.SortColumn  = newSortColumn;
            mailRoomListState.CurrentPage = 1;

            /* Command processing */
            FilterViewModel userFilterViewModel = null;

            if ((_httpContext != null) && (_httpContext.Session[SessionHelper.FilterViewModel] != null))
            {
                userFilterViewModel = new FilterViewModel().FromXml(_httpContext.Session[SessionHelper.FilterViewModel].ToString());
            }
            else
            {
                userFilterViewModel = new FilterViewModel();
            }
            var mailRoomViewData = MailRoomDataHelper.RetrieveMailRoomViewModel(mailRoomListState,
                                                                                _httpContext.Session["UserAccountIds"] !=
                                                                                null
                                                                                    ? (List <int>)
                                                                                _httpContext.Session[
                                                                                    "UserAccountIds"]
                                                                                    : new List <int> {
            },
                                                                                user.UserAccountId, userFilterViewModel.CompanyId, userFilterViewModel.ChannelId, userFilterViewModel.DivisionId, userFilterViewModel.BranchId, searchValue);


            if (mailRoomViewModel != null)
            {
                mailRoomViewModel.MailRoomItems = mailRoomViewData.MailRoomItems;
                mailRoomViewModel.PageCount     = mailRoomViewData.PageCount;
                mailRoomViewModel.TotalItems    = mailRoomViewData.TotalItems;

                MailRoomGridHelper.ProcessPagingOptions(mailRoomListState, mailRoomViewModel);
            }


            _viewName  = "Queues/_mailRoom";
            _viewModel = mailRoomViewModel;

            /* Persist new state */
            _httpContext.Session[SessionHelper.MailRoomViewModel] = mailRoomViewModel.ToXml();
            _httpContext.Session[SessionHelper.MailRoomListState] = mailRoomListState;
        }
Exemple #2
0
        public void Execute()
        {
            String searchValue = CommonHelper.GetSearchValue(_httpContext);

            MailRoomListState mailroomListState = null;

            if ((_httpContext != null) && (_httpContext.Session[SessionHelper.MailRoomListState] != null))
            {
                mailroomListState = ( MailRoomListState )_httpContext.Session[SessionHelper.MailRoomListState];
            }
            else
            {
                mailroomListState = new MailRoomListState();
            }

            if (InputParameters != null && InputParameters.ContainsKey("DocumentTypeFilter"))
            {
                mailroomListState.DocumentTypeFilter = InputParameters["DocumentTypeFilter"].ToString();
            }
            else
            {
                mailroomListState.DocumentTypeFilter = "";
            }

            FilterViewModel userFilterViewModel = null;

            if ((_httpContext != null) && (_httpContext.Session[SessionHelper.FilterViewModel] != null))
            {
                userFilterViewModel = new FilterViewModel().FromXml(_httpContext.Session[SessionHelper.FilterViewModel].ToString());
                userFilterViewModel.FilterContext = Helpers.Enums.FilterContextEnum.MailRoom;
            }
            else
            {
                // possible state retrieval?
                userFilterViewModel = new FilterViewModel();
                userFilterViewModel.FilterContext = Helpers.Enums.FilterContextEnum.MailRoom;
            }

            UserAccount user = null;

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

            MailRoomViewModel mailRoomViewModel = null;

            if (InputParameters != null && InputParameters.ContainsKey("ChangeStatuses") && InputParameters["ChangeStatuses"].ToString().Trim() == "true" &&
                InputParameters.ContainsKey("LoanId"))
            {
                Guid loanId;
                if (Guid.TryParse(InputParameters["LoanId"].ToString().Trim(), out loanId))
                {
                    if (_httpContext.Session[SessionHelper.MailRoomViewModel] != null)
                    {
                        mailRoomViewModel = new MailRoomViewModel().FromXml(_httpContext.Session[SessionHelper.MailRoomViewModel].ToString());
                    }

                    if (mailRoomViewModel != null && mailRoomViewModel.MailRoomItems != null && mailRoomViewModel.MailRoomItems.Any())
                    {
                        MailRoomView  currentItem   = mailRoomViewModel.MailRoomItems.FirstOrDefault(p => p.LoanId == loanId);
                        DocumentClass documentClass = currentItem != null ? currentItem.DocumentClass : DocumentClass.None;
                        MailRoomGridHelper.ChangeStatusesForDocumentsToSent(loanId, user.UserAccountId, documentClass);
                    }
                }
            }

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

            // reset Page Number to 1st on Tab change
            if (!refresh)
            {
                mailroomListState.CurrentPage = 1;
            }

            mailRoomViewModel = new MailRoomViewModel();
            mailRoomViewModel = MailRoomDataHelper.RetrieveMailRoomViewModel(mailroomListState,
                                                                             _httpContext.Session[SessionHelper.UserAccountIds] != null
                                                               ? (List <int>)_httpContext.Session[SessionHelper.UserAccountIds]
                                                               : new List <int> {
            }, user.UserAccountId, userFilterViewModel.CompanyId, userFilterViewModel.ChannelId, userFilterViewModel.DivisionId, userFilterViewModel.BranchId, searchValue);

            _viewName  = "Queues/_mailRoom";
            _viewModel = mailRoomViewModel;

            /* Persist new state */
            _httpContext.Session[SessionHelper.MailRoomViewModel] = mailRoomViewModel.ToXml();
            _httpContext.Session[SessionHelper.MailRoomListState] = mailroomListState;
            _httpContext.Session[SessionHelper.FilterViewModel]   = userFilterViewModel.ToXml();
            _httpContext.Session[SessionHelper.CurrentTab]        = LoanCenterTab.MailRoom;
        }