Create() public static méthode

public static Create ( ) : DepartmentalAdminRequestViewModel
Résultat DepartmentalAdminRequestViewModel
        /// <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));
        }