Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Logic.Models;
  6. using Microsoft.AspNetCore.Identity;
  7. using Microsoft.EntityFrameworkCore;
  8. using Microsoft.Extensions.DependencyInjection;
  9.  
  10. namespace Performance.Services
  11. {
  12. public static class SeedData
  13. {
  14. public static async Task InitializeAsync(
  15. RoleManager<IdentityRole<Guid>> identity, UserManager<User> userManager)
  16. {
  17. await EnsureRolesAsync(identity);
  18. await EnsureUserAsync(identity);
  19. await EnsureAdminAsync(identity);
  20. await EnsureTestAdminAsync(userManager);
  21. }
  22.  
  23. private static async Task EnsureRolesAsync(
  24. RoleManager<IdentityRole<Guid>> roleManager)
  25. {
  26. var alreadyExists = await roleManager
  27. .RoleExistsAsync(Constants.SuperUser);
  28.  
  29. if (alreadyExists) return;
  30.  
  31. await roleManager.CreateAsync(
  32. new IdentityRole<Guid>(Constants.SuperUser));
  33. }
  34.  
  35. private static async Task EnsureUserAsync(
  36. RoleManager<IdentityRole<Guid>> roleManager)
  37. {
  38. var alreadyExists = await roleManager
  39. .RoleExistsAsync(Constants.User);
  40.  
  41. if (alreadyExists) return;
  42.  
  43. await roleManager.CreateAsync(
  44. new IdentityRole<Guid>(Constants.User));
  45. }
  46.  
  47. private static async Task EnsureAdminAsync(
  48. RoleManager<IdentityRole<Guid>> roleManager)
  49. {
  50. var alreadyExists = await roleManager
  51. .RoleExistsAsync(Constants.AdministratorRole);
  52.  
  53. if (alreadyExists) return;
  54.  
  55. await roleManager.CreateAsync(
  56. new IdentityRole<Guid>(Constants.AdministratorRole));
  57. }
  58.  
  59. private static async Task EnsureTestAdminAsync(
  60. UserManager<User> userManager)
  61. {
  62. var testAdmin = await userManager.Users
  63. .Where(x => x.UserName == "test@example.com")
  64. .SingleOrDefaultAsync();
  65.  
  66. if (testAdmin != null) return;
  67.  
  68. testAdmin = new User
  69. {
  70. UserName = "test@example.com",
  71. Email = "test@example.com"
  72. };
  73. await userManager.CreateAsync(
  74. testAdmin, "qwe123asd");
  75. await userManager.AddToRoleAsync(
  76. testAdmin, Constants.SuperUser);
  77. }
  78.  
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement