Guest User

Untitled

a guest
Feb 16th, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.16 KB | None | 0 0
  1. public class User : IdentityUser
  2. {
  3. public string Name { get; set; }
  4. public string Surname { get; set; }
  5. public string Nickname { get; set; }
  6. }
  7.  
  8. public class Instructor : User
  9. {
  10. public virtual ICollection<Subject> Subjects { get; set; }
  11. public Instructor()
  12. {
  13. Subjects = new List<Subject>();
  14. }
  15. }
  16.  
  17. public class Student : User
  18. {
  19. }
  20.  
  21. public class Subject
  22. {
  23. public int Id { get; set; }
  24. public string Name { get; set; }
  25. public virtual ICollection<Instructor> Instructors { get; set; }
  26. public Subject()
  27. {
  28. Instructors = new List<Instructor>();
  29. }
  30. }
  31.  
  32. public class Evaluation
  33. {
  34. public string StudentId { get; set; }
  35. public int SubjectId { get; set; }
  36. public virtual Student Student { get; set; }
  37. public virtual Subject Subject { get; set; }
  38. public int Score { get; set; }
  39. }
  40.  
  41. public class ApplicationDbContext : IdentityDbContext<User>
  42. {
  43. public DbSet<Subject> Subjects { get; set; }
  44. public DbSet<Evaluation> Evaluations { get; set; }
  45.  
  46. public ApplicationDbContext() : base("StudentsWebsiteDb") { }
  47.  
  48. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  49. {
  50. modelBuilder.Entity<Subject>()
  51. .HasMany(i => i.Instructors)
  52. .WithMany(s => s.Subjects)
  53. .Map(k => k.MapLeftKey("UserId")
  54. .MapRightKey("SubjectId")
  55. .ToTable("SubjectInstructor"));
  56.  
  57. modelBuilder.Entity<Evaluation>().HasKey(e => new { e.StudentId, e.SubjectId });
  58. base.OnModelCreating(modelBuilder);
  59. }
  60.  
  61. public static ApplicationDbContext Create()
  62. {
  63. return new ApplicationDbContext();
  64. }
  65. }
  66.  
  67. public class ApplicationDbInitializer : DropCreateDatabaseAlways<ApplicationDbContext>
  68. {
  69. protected override void Seed(ApplicationDbContext context)
  70. {
  71. ApplicationUserManager userManager = new ApplicationUserManager(new UserStore<User>(context));
  72. RoleManager<IdentityRole> roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
  73. Dictionary<User, string> students = new Dictionary<User, string>();
  74. Dictionary<User, string> instructors = new Dictionary<User, string>();
  75. List<Subject> subjects = new List<Subject>();
  76.  
  77. IdentityRole deanRole = new IdentityRole { Name = "dean" };
  78. roleManager.Create(deanRole);
  79.  
  80. IdentityRole instructorRole = new IdentityRole { Name = "instructor" };
  81. roleManager.Create(instructorRole);
  82.  
  83. IdentityRole studentRole = new IdentityRole { Name = "student" };
  84. roleManager.Create(studentRole);
  85.  
  86. User dean = new User { UserName = "yyyyyyy@mail.ru", Email = "yyyyyyyy@mail.ru", Name = "Ruslan", Surname = "Krivoshein", Nickname = "guitarhero" };
  87. IdentityResult result = userManager.Create(dean, "qweqwe123!");
  88. dean.Claims.Add(new IdentityUserClaim { ClaimType = "Nickname", ClaimValue = dean.Nickname });
  89. if (result.Succeeded)
  90. {
  91. userManager.AddToRole(dean.Id, deanRole.Name);
  92. }
  93.  
  94. instructors.Add(new Instructor { UserName = "norbertwiener@science.ru", Email = "norbertwiener@science.ru", Name = "Norbert", Surname = "Wiener", Nickname = "Mr.Wiener" }, "wiener");
  95. instructors.Add(new Instructor { UserName = "claudeshannon@science.ru", Email = "claudeshannon@science.ru", Name = "Claude", Surname = "Shannon", Nickname = "Mr.Shannon" }, "shannon");
  96. instructors.Add(new Instructor { UserName = "alanturing@science.ru", Email = "alanturing@science.ru", Name = "Alan", Surname = "Turing", Nickname = "Mr.Turing" }, "turing");
  97. instructors.Add(new Instructor { UserName = "johnneumann@science.ru", Email = "johnneumann@science.ru", Name = "John", Surname = "Neumann", Nickname = "Mr.Neumann" }, "neumann");
  98. instructors.Add(new Instructor { UserName = "andreykolmogorov@science.ru", Email = "andreykolmogorov@science.ru", Name = "Andrey", Surname = "Kolmogorov", Nickname = "Mr.Kolmogorov" }, "kolmogorov");
  99. instructors.Add(new Instructor { UserName = "alberteinstein@science.ru", Email = "alberteinstein@science.ru", Name = "Albert", Surname = "Einstein", Nickname = "Mr.Einstein" }, "einstein");
  100.  
  101. foreach (KeyValuePair<User, string> instructor in instructors)
  102. {
  103. IdentityResult res = userManager.Create(instructor.Key, instructor.Value);
  104. instructor.Key.Claims.Add(new IdentityUserClaim { ClaimType = "Nickname", ClaimValue = instructor.Key.Nickname });
  105. if (res.Succeeded)
  106. {
  107. userManager.AddToRole(instructor.Key.Id, instructorRole.Name);
  108. }
  109. }
  110.  
  111. students.Add(new Student { UserName = "kirkrotorkrik@mail.ru", Email = "kirkrotorkrik@mail.ru", Name = "Kirill", Surname = "Krotov", Nickname = "Mole" }, "1krotkrot!");
  112. students.Add(new Student { UserName = "nickkkyyeremin@mail.ru", Email = "nickkkyyeremin@mail.ru", Name = "Nikolay", Surname = "Yeremin", Nickname = "erema" }, "!qwE12");
  113. students.Add(new Student { UserName = "fe0fan0v@bk.ru", Email = "fe0fan0v@bk.ru", Name = "Sergey", Surname = "Feofanov", Nickname = "DarkSide13" }, "ezzzy_0");
  114. students.Add(new Student { UserName = "someoneb100@mail.ru", Email = "someoneb100@mail.ru", Name = "Andrey", Surname = "Petrov", Nickname = "SomeoneB" }, "ap1234!");
  115. students.Add(new Student { UserName = "fyrfyrfyr1324@gmail.com", Email = "fyrfyrfyr1324@gmail.com", Name = "Alexandra", Surname = "Yeremina", Nickname = "CrazyFox" }, "foxy_777");
  116. students.Add(new Student { UserName = "oskarsmile12@yandex.ru", Email = "oskarsmile12@yandex.ru", Name = "Oskar", Surname = "Steblev", Nickname = "The_Best" }, "x1x1x1!");
  117. students.Add(new Student { UserName = "eagleandrew@mail.ru", Email = "eagleandrew@mail.ru", Name = "Andrey", Surname = "Orlov", Nickname = "TheEagle" }, "ea6le/");
  118. students.Add(new Student { UserName = "katypitch@gmail.com", Email = "katypitch@gmail.com", Name = "Ekaterina", Surname = "Pitch", Nickname = "Pretty" }, "kexxx:*");
  119. students.Add(new Student { UserName = "crazy07taly@mail.ru", Email = "crazy07taly@mail.ru", Name = "Stanislav", Surname = "Taly", Nickname = "HawkTaly" }, "h2so4)");
  120. students.Add(new Student { UserName = "maximusalive666@mail.ru", Email = "maximusalive666@mail.ru", Name = "Maxim", Surname = "Zhitnev", Nickname = "Maximus" }, "max/max");
  121.  
  122. foreach (KeyValuePair<User, string> student in students)
  123. {
  124. IdentityResult res = userManager.Create(student.Key, student.Value);
  125. student.Key.Claims.Add(new IdentityUserClaim { ClaimType = "Nickname", ClaimValue = student.Key.Nickname });
  126. if (res.Succeeded)
  127. {
  128. userManager.AddToRole(student.Key.Id, studentRole.Name);
  129. }
  130. }
  131.  
  132. subjects.Add(new Subject { Id = 1, Name = "Physic" });
  133. subjects.Add(new Subject { Id = 2, Name = "Math" });
  134. subjects.Add(new Subject { Id = 3, Name = "Electrical and electronics" });
  135. subjects.Add(new Subject { Id = 4, Name = "Theory of automata" });
  136. subjects.Add(new Subject { Id = 5, Name = "Informatics" });
  137. foreach (Subject subject in subjects)
  138. {
  139. context.Subjects.Add(subject);
  140. }
  141.  
  142. base.Seed(context);
  143. }
  144. }
Add Comment
Please, Sign In to add comment