/// <summary> /// #2 /// </summary> /// <returns></returns> public ActionResult Create() { var request = _departmentalAdminRequestRepository.GetNullableById(CurrentUser.Identity.Name); var ldap = _directorySearchService.FindUser(CurrentUser.Identity.Name); Check.Require(ldap != null, "Person requesting Departmental Access ID not found. ID = " + CurrentUser.Identity.Name); var model = DepartmentalAdminRequestViewModel.Create(); model.DepartmentalAdminRequest = request ?? new DepartmentalAdminRequest(ldap.LoginId.ToLower()); model.DepartmentalAdminRequest.FirstName = ldap.FirstName; model.DepartmentalAdminRequest.LastName = ldap.LastName; model.DepartmentalAdminRequest.Email = ldap.EmailAddress; model.DepartmentalAdminRequest.PhoneNumber = ldap.PhoneNumber; if (model.DepartmentalAdminRequest.Organizations != null && model.DepartmentalAdminRequest.Organizations.Any()) { foreach (var orgId in model.DepartmentalAdminRequest.Organizations.Split(',')) { var org = _repositoryFactory.OrganizationRepository.GetNullableById(orgId); if (org != null) { model.Organizations.Add(org); } } } return(View(model)); }
public ActionResult Deny(string id) { var daRequest = _departmentalAdminRequestRepository.GetNullableById(id); if (daRequest == null) { ErrorMessage = "Request not found"; return(this.RedirectToAction(a => a.Index(null))); } if (daRequest.Complete) { Message = "Request was already completed"; return(this.RedirectToAction(a => a.Index(null))); } var model = DepartmentalAdminRequestViewModel.Create(); model.DepartmentalAdminRequest = daRequest; var user = _repositoryFactory.UserRepository.GetNullableById(id); if (user == null) { model.UserExists = false; model.UserIsAlreadyDA = false; } else { model.UserExists = true; if (user.Roles.Any(a => a.Id == Role.Codes.DepartmentalAdmin)) { model.UserIsAlreadyDA = true; } else { model.UserIsAlreadyDA = false; } } var requestedOrgIds = model.DepartmentalAdminRequest.Organizations != null?model.DepartmentalAdminRequest.Organizations.Split(',').ToList() : new List <string>(); foreach (var orgId in requestedOrgIds) { var org = _repositoryFactory.OrganizationRepository.GetNullableById(orgId); if (org != null) { model.Organizations.Add(org); } } model.ExistingOrganizations = new List <Organization>(); if (model.UserIsAlreadyDA) { model.ExistingOrganizations = user.Organizations; } return(View(model)); }
public ActionResult Details(string id) { var daRequest = _departmentalAdminRequestRepository.GetNullableById(id); if (daRequest == null) { ErrorMessage = "Request not found"; return(this.RedirectToAction(a => a.Index(null))); } var model = DepartmentalAdminRequestViewModel.Create(); model.DepartmentalAdminRequest = daRequest; var user = _repositoryFactory.UserRepository.GetNullableById(id); if (user == null) { model.UserExists = false; model.UserIsAlreadyDA = false; } else { model.UserExists = true; if (user.Roles.Any(a => a.Id == Role.Codes.DepartmentalAdmin)) { model.UserIsAlreadyDA = true; } else { model.UserIsAlreadyDA = false; } } var requestedOrgIds = model.DepartmentalAdminRequest.Organizations != null?model.DepartmentalAdminRequest.Organizations.Split(',').ToList() : new List <string>(); foreach (var orgId in requestedOrgIds) { var org = _repositoryFactory.OrganizationRepository.GetNullableById(orgId); if (org != null) { model.Organizations.Add(org); } } model.ExistingOrganizations = new List <Organization>(); if (model.UserIsAlreadyDA) { model.ExistingOrganizations = user.Organizations; } model.OrgsExistingUsers = new List <KeyValuePair <string, string> >(); foreach (var organization in model.Organizations) { Organization organization1 = organization; var users = _repositoryFactory.UserRepository.Queryable.Where(a => a.Organizations.Contains(organization1)).Select(b => b.Email).ToList(); foreach (var userEmail in users) { model.OrgsExistingUsers.Add(new KeyValuePair <string, string>(organization.Id, userEmail)); } } // Find Children DA Users. var childOrgIds = _queryRepositoryFactory.OrganizationDescendantRepository.Queryable.Where(a => requestedOrgIds.Contains(a.RollupParentId)).Select(b => b.OrgId).Distinct().ToList(); var childOrganizations = new List <Organization>(); foreach (var orgId in childOrgIds) { var org = _repositoryFactory.OrganizationRepository.GetNullableById(orgId); if (org != null) { childOrganizations.Add(org); } } model.ChildOrgsExistingUsers = new List <KeyValuePair <string, string> >(); model.OrganizationsWhithChildUsers = new List <Organization>(); foreach (var organization in childOrganizations) { Organization organization1 = organization; var users = _repositoryFactory.UserRepository.Queryable.Where(a => a.Organizations.Contains(organization1) && a.Id != daRequest.Id).Select(b => b.Email).ToList(); if (users.Count > 0) { model.OrganizationsWhithChildUsers.Add(organization1); } foreach (var userEmail in users) { model.ChildOrgsExistingUsers.Add(new KeyValuePair <string, string>(organization.Id, userEmail)); } } // Find Parent DA Users. var parentOrgIds = _queryRepositoryFactory.OrganizationDescendantRepository.Queryable.Where(a => requestedOrgIds.Contains(a.OrgId)).Select(b => b.RollupParentId).Distinct().ToList(); var parentOrganizations = new List <Organization>(); foreach (var orgId in parentOrgIds) { var org = _repositoryFactory.OrganizationRepository.GetNullableById(orgId); if (org != null) { parentOrganizations.Add(org); } } model.ParentOrgsExistingUsers = new List <KeyValuePair <string, string> >(); model.OrganizationsWhithParentUsers = new List <Organization>(); foreach (var organization in parentOrganizations) { Organization organization1 = organization; var users = _repositoryFactory.UserRepository.Queryable.Where(a => a.Organizations.Contains(organization1) && a.Id != daRequest.Id).Select(b => b.Email).ToList(); if (users.Count > 0) { model.OrganizationsWhithParentUsers.Add(organization1); } foreach (var userEmail in users) { model.ParentOrgsExistingUsers.Add(new KeyValuePair <string, string>(organization.Id, userEmail)); } } return(View(model)); }