private static async Task CreateAdminUser()

in UnicornStore/Data/DbInitializer.cs [78:115]


        private static async Task CreateAdminUser(IServiceProvider serviceProvider, IConfiguration configuration)
        {

            var defaultAdminPassword = configuration["DefaultAdminPassword"];
            var defaultAdminUserName = configuration["DefaultAdminUserName"];

            var userManager = serviceProvider.GetService<UserManager<ApplicationUser>>();
            // TODO: Identity SQL does not support roles yet
            //var roleManager = serviceProvider.GetService<ApplicationRoleManager>();
            //if (!await roleManager.RoleExistsAsync(adminRole))
            //{
            //    await roleManager.CreateAsync(new IdentityRole(adminRole));
            //}

            var user = await userManager.FindByNameAsync(defaultAdminUserName);
            if (user == null)
            {
                user = new ApplicationUser { UserName = defaultAdminUserName };
                await userManager.CreateAsync(user, defaultAdminPassword);
                //await userManager.AddToRoleAsync(user, adminRole);
                await userManager.AddClaimAsync(user, new Claim("ManageStore", "Allowed"));
            }

            //NOTE: For end to end testing only
            var envPerfLab = configuration["PERF_LAB"];
            if (envPerfLab == "true")
            {
                for (int i = 0; i < 100; ++i)
                {
                    var email = string.Format("User{0:D3}@example.com", i);
                    var normalUser = await userManager.FindByEmailAsync(email);
                    if (normalUser == null)
                    {
                        await userManager.CreateAsync(new ApplicationUser { UserName = email, Email = email }, "Password~!1");
                    }
                }
            }
        }