コード例 #1
0
        public override void Execute()
        {
            base.Execute();

            bool hasPrivilegeForManagingQueues          = (base.HttpContext.Session[SessionHelper.PrivilegeForManagingQueues] is bool && ( bool )base.HttpContext.Session[SessionHelper.PrivilegeForManagingQueues]);
            bool hasPrivilegeForManagingAppraisalQueues = (base.HttpContext.Session[SessionHelper.DisplayAppraisalQueues] is bool && ( bool )base.HttpContext.Session[SessionHelper.DisplayAppraisalQueues]);
            bool hasPrivilegeForViewQueuesFilter        = (base.HttpContext.Session[SessionHelper.ViewQueuesFilter] is bool && ( bool )base.HttpContext.Session[SessionHelper.ViewQueuesFilter]);

            FilterViewModel userFilterViewModel = new FilterViewModel();

            userFilterViewModel.CompanyId  = Guid.Empty;
            userFilterViewModel.ChannelId  = 0;
            userFilterViewModel.DivisionId = 0;
            userFilterViewModel.BranchId   = Guid.Empty;
            userFilterViewModel.UserId     = 0;

            userFilterViewModel.Users.Clear();
            userFilterViewModel.Users.Add(base.ViewAllItem);

            /* Command processing */
            if (base.User.Roles.Any(r => r.RoleName.Equals(RoleName.Administrator)) || hasPrivilegeForManagingAppraisalQueues || hasPrivilegeForViewQueuesFilter)
            {
                if (User.Roles.Any(r => r.RoleName.Equals(RoleName.Administrator)) || User.Roles.Any(r => r.RoleName.Equals(RoleName.Hvm)))
                {
                    HttpContext.Session[SessionHelper.UserAccountIds] = null;
                }
                // start filling user filters by loading companies
                LoadCompanies(userFilterViewModel);
            }
            else if (base.User.Roles.Any(r => r.RoleName.Equals(RoleName.BranchManager)) || base.User.Roles.Any(r => r.RoleName.Equals(RoleName.TeamLeader)) || hasPrivilegeForManagingQueues)
            {
                // load only related users
                LoadRelatedUsers(userFilterViewModel, base.User);
            }
            else if (base.User.Roles.Any(r => r.RoleName.Equals(RoleName.LoanOfficer)) ||
                     base.User.Roles.Any(r => r.RoleName.Equals(RoleName.Concierge)))
            {
                AddCurrentUserToFilterModel(userFilterViewModel, base.User);
            }
            else if (base.User.Roles.Any(r => r.RoleName.Equals(RoleName.LoanOfficerAssistant)))
            {
                AddRelatedLoanOfficers(userFilterViewModel, base.User);
            }

            userFilterViewModel.Users = userFilterViewModel.Users.OrderBy(u => u.Text).ToList();

            base.ViewName = "_userfilter";
            base.ViewData = userFilterViewModel;

            /* Persist new state */
            base.HttpContext.Session["FilterViewModel"] = userFilterViewModel.ToXml();
        }