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; }
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; }