private async Task CreateRoles(IServiceProvider serviceProvider, BookstoriaDbContext dbContext) { var RoleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >(); var UserManager = serviceProvider.GetRequiredService <UserManager <IdentityUser> >(); IdentityResult roleResult; var roleCheck = await RoleManager.RoleExistsAsync("Admin"); if (!roleCheck) { roleResult = await RoleManager.CreateAsync(new IdentityRole("Admin")); } var adminUser = UserManager.FindByEmailAsync("*****@*****.**") .GetAwaiter() .GetResult(); if (adminUser != null) { adminUser.EmailConfirmed = true; var result = UserManager.AddToRoleAsync(adminUser, "Admin") .GetAwaiter() .GetResult(); var admin = new Admin() { Email = adminUser.Email, FirstName = "Cosmin", LastName = "Corboianu", ID = Guid.NewGuid(), UserID = Guid.Parse(adminUser.Id), }; dbContext.Add(admin); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider services, BookstoriaDbContext dbContext) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapRazorPages(); }); CreateRoles(services, dbContext).Wait(); }