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