예제 #1
0
        private static async Task InitUsersAsync(
            IServiceScope serviceScope,
            IEnumerable <TestUser> testUsers = null
            )
        {
            var uowProvider = serviceScope.ServiceProvider.GetRequiredService <IUowProvider>();
            var userManager = serviceScope.ServiceProvider.GetRequiredService <UserManager <ApplicationUser> >();

            if ((testUsers != null) && (!DynamicQueryableExtensions.Any(userManager.Users)))
            {
                foreach (var inMemoryUser in testUsers)
                {
                    var identityUser = new ApplicationUser(inMemoryUser.Username);
                    userManager.CreateAsync(identityUser, inMemoryUser.Password).Wait();
                    userManager.AddToRoleAsync(identityUser, SystemRoleTypes.SuperAdmin.ToString()).Wait();
                    using (var uow = uowProvider.CreateUnitOfWork())
                    {
                        var userRepository = uow.GetRepository <UserProfile, string>();
                        await userRepository.AddAsync(new UserProfile
                        {
                            Id         = identityUser.Id,
                            FirstName  = "SuperAdmin",
                            MiddleName = "SuperAdmin",
                            LastName   = "SuperAdmin",
                            Email      = "*****@*****.**"
                        }
                                                      );

                        await uow.SaveChangesAsync();
                    }
                }
            }
        }
예제 #2
0
        private static async Task InitIdentityServerAsync(
            IServiceScope serviceScope,
            IEnumerable <Client> initialClients                     = null,
            IEnumerable <ApiResource> initialApiResources           = null,
            IEnumerable <IdentityResource> initialIdentityResources = null
            )
        {
            serviceScope.ServiceProvider.GetRequiredService <CoreManageDbContext>().Database.Migrate();
            var grantContext = serviceScope.ServiceProvider.GetRequiredService <PersistedGrantDbContext>();

            try { await grantContext.Database.MigrateAsync(); }
            catch (System.NotImplementedException) { grantContext.Database.Migrate(); }

            var configContext = serviceScope.ServiceProvider.GetRequiredService <ConfigurationDbContext>();

            try { await configContext.Database.MigrateAsync(); }
            catch (System.NotImplementedException) { configContext.Database.Migrate(); }

            // intitial clients
            if ((initialClients != null) && (!DynamicQueryableExtensions.Any(configContext.Clients)))
            {
                foreach (var client in initialClients)
                {
                    var c = client.ToEntity();
                    configContext.Clients.Add(c);
                }
                await configContext.SaveChangesAsync();
            }
            // intitial apiResources
            if ((initialApiResources != null) && (!DynamicQueryableExtensions.Any(configContext.ApiResources)))
            {
                foreach (var scope in initialApiResources)
                {
                    var s = scope.ToEntity();
                    configContext.ApiResources.Add(s);
                }
                await configContext.SaveChangesAsync();
            }
            // intitial identityResources
            if ((initialIdentityResources != null) && (!DynamicQueryableExtensions.Any(configContext.IdentityResources)))
            {
                foreach (var scope in initialIdentityResources)
                {
                    var s = scope.ToEntity();
                    configContext.IdentityResources.Add(s);
                }
                await configContext.SaveChangesAsync();
            }
        }
예제 #3
0
        private static async Task InitRolesAsync(IServiceScope serviceScope)
        {
            var roleManager = serviceScope.ServiceProvider.GetRequiredService <RoleManager <ApplicationRole> >();

            if (!DynamicQueryableExtensions.Any(roleManager.Roles))
            {
                await roleManager.CreateAsync(new ApplicationRole(SystemRoles.SuperAdmin, (int)SystemRoleTypes.SuperAdmin));

                await roleManager.CreateAsync(new ApplicationRole(SystemRoles.GroupAdmin, (int)SystemRoleTypes.SuperAdmin));

                await roleManager.CreateAsync(new ApplicationRole(SystemRoles.TenantAdmin, (int)SystemRoleTypes.GroupAdmin));

                await roleManager.CreateAsync(new ApplicationRole(SystemRoles.DashboardAdmin, (int)SystemRoleTypes.TenantAdmin)); // (Module/ApiClient)
            }
        }
        public static bool AnyInterpolated(this IQueryable source, FormattableString predicate)
        {
            var predicateStr = ParseFormattableString(predicate, out var args);

            return(DynamicQueryableExtensions.Any(source, predicateStr, args));
        }