public static List <SelectListItem> PopulateProspectLoanOfficers(FilterViewModel userFilterViewModel, HttpContextBase _httpContext)
        {
            Guid branchId = Guid.Empty;

            if ((_httpContext != null) && (_httpContext.Session[SessionHelper.BranchId] is Guid))
            {
                branchId = ( Guid )_httpContext.Session[SessionHelper.BranchId];
            }

            if ((_httpContext != null) && (_httpContext.Session["FilterViewModel"] != null) && branchId != Guid.Empty)
            {
                userFilterViewModel.UsersForProspect.Clear();

                userFilterViewModel.UsersForProspect.Add(_emptyItem);

                var result = UserAccountServiceFacade.GetUsersFullName(branchId, false);

                if (result != null)
                {
                    foreach (var userAccount in result.OrderBy(r => r.FullName))
                    {
                        userFilterViewModel.UsersForProspect.Add(new SelectListItem()
                        {
                            Text  = userAccount.FullName,
                            Value = userAccount.UserAccountId.ToString()
                        });
                    }
                }

                return(userFilterViewModel.UsersForProspect.ToList());
            }

            return(new List <SelectListItem>());
        }
Exemplo n.º 2
0
        private void LoadRelatedUsers(FilterViewModel userFilterViewModel, UserAccount user)
        {
            // for branch manager role, we need to fetch only users who belong to this branch in a company
            // from relatedusers property select LO/Concierge Users
            if (user != null)
            {
                var result = UserAccountServiceFacade.GetUsersFullName(user.BranchId, false);

                var userAccountIdsList = new List <int>();
                userAccountIdsList.Add(user.UserAccountId);

                foreach (var userAccount in result.OrderBy(r => r.FullName))
                {
                    //if ( user.UserAccountId == userAccount.UserAccountId )
                    //    continue;

                    userFilterViewModel.Users.Add(new SelectListItem()
                    {
                        Text     = userAccount.FullName,
                        Value    = userAccount.UserAccountId.ToString(),
                        Selected = (userAccount.UserAccountId == userFilterViewModel.UserId)
                    });

                    if (userFilterViewModel.UsersForProspect == null)
                    {
                        userFilterViewModel.UsersForProspect = new List <SelectListItem>();
                    }

                    userFilterViewModel.UsersForProspect.Add(new SelectListItem()
                    {
                        Text  = userAccount.FullName,
                        Value = userAccount.UserAccountId.ToString()
                    });

                    if (user.UserAccountId != userAccount.UserAccountId)
                    {
                        userAccountIdsList.Add(userAccount.UserAccountId);
                    }
                }

                // TODO: Refactor:
                // Branch Manager, Team Leader and Division Manager roles filter WQ recoeds by assigned branch(es).
                // For others we filter by users which are currently in selected branch.
                if (user.Roles.Any(r => r.RoleName.Equals(RoleName.BranchManager)) ||
                    user.Roles.Any(r => r.RoleName.Equals(RoleName.TeamLeader)) ||
                    user.Roles.Any(r => r.RoleName.Equals(RoleName.DivisionManager)))
                {
                    userAccountIdsList.Clear();
                }

                base.HttpContext.Session[SessionHelper.UserAccountIds] = userAccountIdsList;
            }
        }
Exemplo n.º 3
0
        public void Execute()
        {
            TraceHelper.Information(TraceCategory.LoanCenter, "UserFilterLoadUsersCommand Execute started!");

            Stopwatch swatch = Stopwatch.StartNew();

            UserAccount user;

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

            FilterViewModel userFilterViewModel = null;

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

            /* parameter processing */
            Guid branchId = Guid.Empty;

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

            bool branchesResetOccurred = false;

            if (InputParameters["BranchId"].ToString() == "0" || InputParameters["BranchId"].ToString().Equals("-1"))
            {
                branchesResetOccurred = true;
                _httpContext.Session[SessionHelper.BranchId] = null;
            }
            else
            {
                branchId = Guid.Parse(InputParameters["BranchId"].ToString());
                _httpContext.Session[SessionHelper.BranchId] = branchId;
            }

            // select company
            userFilterViewModel.BranchId = branchId;

            userFilterViewModel.Users.Clear();
            userFilterViewModel.Users.Add(_viewAllItem);
            userFilterViewModel.UserId = 0;

            userFilterViewModel.UsersForProspect.Clear();
            userFilterViewModel.UsersForProspect.Add(_emptyItem);

            if (!branchesResetOccurred)
            {
                /* Command processing */
                var result = UserAccountServiceFacade.GetUsersFullName(branchId, false);

                var usersList = new List <int>();

                foreach (var userAccount in result.OrderBy(r => r.FullName))
                {
                    userFilterViewModel.Users.Add(new SelectListItem()
                    {
                        Text     = userAccount.FullName,
                        Value    = userAccount.UserAccountId.ToString(),
                        Selected = (userAccount.UserAccountId == userFilterViewModel.UserId)
                    });

                    userFilterViewModel.UsersForProspect.Add(new SelectListItem()
                    {
                        Text  = userAccount.FullName,
                        Value = userAccount.UserAccountId.ToString()
                    });

                    usersList.Add(userAccount.UserAccountId);
                }



                _httpContext.Session[SessionHelper.UserAccountIds] = usersList;
            }
            else
            {
                bool hasPrivilegeForManagingQueues = (_httpContext.Session[SessionHelper.PrivilegeForManagingQueues] is bool && ( bool )_httpContext.Session[SessionHelper.PrivilegeForManagingQueues]);

                if (user.Roles != null && !user.Roles.Any(r => r.RoleName.Equals(RoleName.Administrator)) &&
                    !user.Roles.Any(r => r.RoleName.Equals(RoleName.BranchManager)) &&
                    !user.Roles.Any(r => r.RoleName.Equals(RoleName.TeamLeader)) &&
                    !user.Roles.Any(r => r.RoleName.Equals(RoleName.DivisionManager)) &&
                    !hasPrivilegeForManagingQueues)
                {
                    // Show only records where user is assigned to (either if it's as LO/Concierge, LOA or Loan Processor )
                    _httpContext.Session[SessionHelper.UserAccountIds] = new List <int> {
                        user.UserAccountId
                    };
                }
                else
                {
                    // Don't filter result list
                    _httpContext.Session[SessionHelper.UserAccountIds] = null;
                }
            }

            _viewName  = "_userfilter";
            _viewModel = userFilterViewModel;

            /* Persist new state */
            _httpContext.Session[SessionHelper.FilterViewModel] = userFilterViewModel.ToXml();

            swatch.Stop();
            TraceHelper.Information(TraceCategory.LoanCenter, "UserFilterLoadUsersCommand Execute completed! Time elapsed (ms): " + swatch.ElapsedMilliseconds);
        }
        public override void Execute()
        {
            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 userFilterViewModel;

            if ((base.HttpContext != null) && (base.HttpContext.Session[SessionHelper.FilterViewModel] != null))
            {
                userFilterViewModel = new FilterViewModel().FromXml(base.HttpContext.Session[SessionHelper.FilterViewModel].ToString());
            }
            else
            {
                // possible state retrieval?
                userFilterViewModel = new FilterViewModel();
            }

            /* parameter processing */
            Int32 channelId = 0;

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

            bool divisionResetOccurred = false;

            if (InputParameters["ChannelId"].ToString() == "0" || InputParameters["ChannelId"].ToString().Equals("-1"))
            {
                divisionResetOccurred = true;
            }
            else
            {
                channelId = Int32.Parse(InputParameters["ChannelId"].ToString());
            }

            userFilterViewModel.ChannelId = channelId;

            userFilterViewModel.Divisions.Clear();
            userFilterViewModel.Divisions.Add(_viewAllItem);
            userFilterViewModel.DivisionId = 0;

            userFilterViewModel.Branches.Clear();
            userFilterViewModel.Branches.Add(_viewAllItemGuid);
            userFilterViewModel.BranchId = Guid.Empty;

            userFilterViewModel.Users.Clear();
            userFilterViewModel.Users.Add(_viewAllItem);
            userFilterViewModel.UserId = 0;

            if (!divisionResetOccurred)
            {
                /* Command processing */
                var result = UserAccountServiceFacade.GetDivisions(channelId);
                if (result != null)
                {
                    foreach (Division division in result.OrderBy(r => r.DivisionName))
                    {
                        userFilterViewModel.Divisions.Add(new SelectListItem()
                        {
                            Text     = division.DivisionName,
                            Value    = division.DivisionId.ToString(),
                            Selected = false
                        });

                        if (base.HttpContext.Session[SessionHelper.CurrentTab] != null &&
                            ((LoanCenterTab)base.HttpContext.Session[SessionHelper.CurrentTab] == LoanCenterTab.OrderRequested ||
                             (LoanCenterTab)base.HttpContext.Session[SessionHelper.CurrentTab] == LoanCenterTab.OrderProcessed ||
                             (LoanCenterTab)base.HttpContext.Session[SessionHelper.CurrentTab] == LoanCenterTab.OrderDeliveredForReview ||
                             (LoanCenterTab)base.HttpContext.Session[SessionHelper.CurrentTab] == LoanCenterTab.OrderException))
                        {
                            var branches = UserAccountServiceFacade.GetBranches(division.DivisionId);
                            foreach (var branch in branches)
                            {
                                var users = UserAccountServiceFacade.GetUsersFullName(branch.BranchId, false);

                                var usersList = new List <int>();

                                foreach (var userAccount in users.OrderBy(r => r.FullName))
                                {
                                    userFilterViewModel.Users.Add(new SelectListItem()
                                    {
                                        Text     = userAccount.FullName,
                                        Value    = userAccount.UserAccountId.ToString(),
                                        Selected = (userAccount.UserAccountId == userFilterViewModel.UserId)
                                    });

                                    usersList.Add(userAccount.UserAccountId);
                                }
                            }
                        }
                    }
                }
                userFilterViewModel.Users.Add(_viewAllItem);
            }

            ViewName = "_userfilter";
            ViewData = userFilterViewModel;

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