Example #1
0
        public static async Task AddAdminRoleandUsers(IServiceProvider serviceProvider,
                                                      IOptions <InitialConfigurationData> options)
        {
            UserManager <ApplicationUser> userManager =
                serviceProvider.GetRequiredService <UserManager <ApplicationUser> >();

            RoleManager <IdentityRole> roleManager =
                serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();

            InitialConfigurationData data = options.Value;

            Console.WriteLine($"Role count -> {data.Roles.Length}");
            Console.WriteLine($"User count -> {data.Users.Length}");

            foreach (var role in data.Roles)
            {
                if (await roleManager.FindByNameAsync(role) == null)
                {
                    await roleManager.CreateAsync(new IdentityRole(role));
                }
            }
            foreach (var user in data.Users)
            {
                System.Console.WriteLine(user.Name + "will be searched in DB");
                if (await userManager.FindByNameAsync(user.Name) == null)
                {
                    System.Console.WriteLine(user.Name + "will be created");
                    foreach (var role in user.Roles)
                    {
                        if (await roleManager.FindByNameAsync(role) == null)
                        {
                            await roleManager.CreateAsync(new IdentityRole(role));
                        }
                    }

                    ApplicationUser newUser = new ApplicationUser
                    {
                        UserName = user.Name,
                        Email    = user.Email
                    };
                    IdentityResult result = await userManager.CreateAsync(newUser, user.Password);

                    if (result.Succeeded)
                    {
                        System.Console.WriteLine("user was successfully created");
                        foreach (var role in user.Roles)
                        {
                            System.Console.WriteLine("Adding new role");
                            await userManager.AddToRoleAsync(newUser, role);
                        }
                    }
                }
            }
        }
Example #2
0
        public static async Task AddAdminRoleandUsers(this AppDbContext context, IServiceProvider serviceProvider,
                                                      IOptions <InitialConfigurationData> options)
        {
            UserManager <ApplicationUser> userManager =
                serviceProvider.GetRequiredService <UserManager <ApplicationUser> >();

            RoleManager <IdentityRole> roleManager =
                serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();

            InitialConfigurationData data = options.Value;

            foreach (var role in data.Roles)
            {
                if (await roleManager.FindByNameAsync(role) == null)
                {
                    await roleManager.CreateAsync(new IdentityRole(role));
                }
            }
            foreach (var user in data.Users)
            {
                if (await userManager.FindByNameAsync(user.Name) == null)
                {
                    foreach (var role in user.Roles)
                    {
                        if (await roleManager.FindByNameAsync(role) == null)
                        {
                            await roleManager.CreateAsync(new IdentityRole(role));
                        }
                    }

                    ApplicationUser newUser = new ApplicationUser {
                        UserName = user.Name,
                        Email    = user.Email
                    };
                    IdentityResult result = await userManager.CreateAsync(newUser, user.Password);

                    if (result.Succeeded)
                    {
                        foreach (var role in user.Roles)
                        {
                            await userManager.AddToRoleAsync(newUser, role);
                        }
                    }
                }
            }
        }