Ejemplo n.º 1
0
        /// <summary>
        /// Ensures that the MIS domain and admin role are present - creating them if needed. Returns both.
        /// </summary>
        /// <returns>Returns the MIS domain and admin role entities.</returns>
        private async Task <(Domain, Role)> ConfigureMisDomainAndAdminRole()
        {
            // Get domains
            DomainService        domainService = ServiceProvider.GetService <DomainService>();
            IEnumerable <Domain> domains       = await domainService.GetDomains();

            // Configure MIS domain if needed
            Domain misDomain = domains.Where(d => d.Name == MisConstants.MIS_DOMAIN_NAME).FirstOrDefault();

            if (misDomain == null)
            {
                misDomain = await domainService.CreateDomain(MisConstants.MIS_DOMAIN_NAME);
            }

            // Get roles of MIS domain
            RoleService        roleService = ServiceProvider.GetService <RoleService>();
            IEnumerable <Role> roles       = await roleService.GetRoles(null, misDomain.Id);

            Role misAdminRole = roles.Where(r => r.Name == MisConstants.MIS_ADMINISTRATOR_ROLE_NAME).FirstOrDefault();

            if (misAdminRole == null)
            {
                misAdminRole = await roleService.CreateRole(MisConstants.MIS_ADMINISTRATOR_ROLE_NAME, misDomain.Id);
            }

            // Return MIS domain and admin role
            return(misDomain, misAdminRole);
        }