Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using Logic.Models;
- using Microsoft.AspNetCore.Identity;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.DependencyInjection;
- namespace Performance.Services
- {
- public static class SeedData
- {
- public static async Task InitializeAsync(
- RoleManager<IdentityRole<Guid>> identity, UserManager<User> userManager)
- {
- await EnsureRolesAsync(identity);
- await EnsureUserAsync(identity);
- await EnsureAdminAsync(identity);
- await EnsureTestAdminAsync(userManager);
- }
- private static async Task EnsureRolesAsync(
- RoleManager<IdentityRole<Guid>> roleManager)
- {
- var alreadyExists = await roleManager
- .RoleExistsAsync(Constants.SuperUser);
- if (alreadyExists) return;
- await roleManager.CreateAsync(
- new IdentityRole<Guid>(Constants.SuperUser));
- }
- private static async Task EnsureUserAsync(
- RoleManager<IdentityRole<Guid>> roleManager)
- {
- var alreadyExists = await roleManager
- .RoleExistsAsync(Constants.User);
- if (alreadyExists) return;
- await roleManager.CreateAsync(
- new IdentityRole<Guid>(Constants.User));
- }
- private static async Task EnsureAdminAsync(
- RoleManager<IdentityRole<Guid>> roleManager)
- {
- var alreadyExists = await roleManager
- .RoleExistsAsync(Constants.AdministratorRole);
- if (alreadyExists) return;
- await roleManager.CreateAsync(
- new IdentityRole<Guid>(Constants.AdministratorRole));
- }
- private static async Task EnsureTestAdminAsync(
- UserManager<User> userManager)
- {
- var testAdmin = await userManager.Users
- .Where(x => x.UserName == "test@example.com")
- .SingleOrDefaultAsync();
- if (testAdmin != null) return;
- testAdmin = new User
- {
- UserName = "test@example.com",
- Email = "test@example.com"
- };
- await userManager.CreateAsync(
- testAdmin, "qwe123asd");
- await userManager.AddToRoleAsync(
- testAdmin, Constants.SuperUser);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement