public async Task <IActionResult> Create(CreateConversationPlanDateViewModel model) { if (ModelState.IsValid) { var conversationPlanDate = new ConversationPlanDate { StartDate = DateTime.ParseExact(model.StartDate, "dd-mm-yyyy", null), EndDate = DateTime.ParseExact(model.EndDate, "dd-mm-yyyy", null) }; _context.ConversationPlanDates.Add(conversationPlanDate); foreach (var group in model.SelectedGroups) { var conversationPlanDateClaim = new ConversationPlanDateClaim { Group = _context.ApplicationUserGroups.First(g => g.Id == group), ConversationPlanDate = conversationPlanDate }; _context.ConversationPlanDateClaims.Add(conversationPlanDateClaim); } await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } model.Groups = new SelectList(_context.ApplicationUserGroups.ToList(), "Id", "GroupName"); return(View(model)); }
public static async void Initialize(IServiceProvider serviceProvider) { var context = serviceProvider.GetService <ApplicationDbContext>(); context.Database.Migrate(); if (!context.Roles.Any()) { string[] roles = { "Eigenaar", "Schooladmin", "Leraar" }; var roleStore = new RoleStore <IdentityRole>(context); foreach (string role in roles) { IdentityRole identityRole = new IdentityRole { Name = role, NormalizedName = role.ToUpper() }; await roleStore.CreateAsync(identityRole); } } if (!context.Schools.Any()) { School maSchool = new School { Id = Guid.NewGuid(), Name = "Ods Meester Aafjes", Email = "*****@*****.**", PostCode = "4194 RR Meteren", Street = "J.H. Lievense van Herwaardenstraat 2", Telephone = "0345 581 158", Url = "http://odsmeesteraafjes.nl" }; School oeSchool = new School { Id = Guid.NewGuid(), Name = "Obs Est", Email = "*****@*****.**", PostCode = "4185 NA EST", Street = "Dorpsstraat 3", Telephone = "0345-569481", Url = "http://www.obsest.nl" }; context.Schools.Add(maSchool); context.Schools.Add(oeSchool); context.SaveChanges(); } var schools = context.Schools.ToList(); if (!context.ApplicationUserGroups.Any()) { string[] maGroups = { "Groep 1/2a", "Groep 1/2b", "Groep 1/2c", "Groep 1/2d", "Groep 3a", "Groep 3b", "Groep 4a", "Groep 4b", "Groep 5a", "Groep 5b", "Groep 6a", "Groep 6b", "Groep 7a", "Groep 7b","Groep 8a", "Groep 8b", "Directie" }; string[] oeGroups = { "Groep 1-2-3", "Groep 4-5-6", "Groep 7-8" }; foreach (string group in maGroups) { context.ApplicationUserGroups.Add(new ApplicationUserGroup { GroupName = group, School = schools.First(s => s.Name == "Ods Meester Aafjes") }); context.SaveChanges(); } foreach (string group in oeGroups) { context.ApplicationUserGroups.Add(new ApplicationUserGroup { GroupName = group, School = schools.First(s => s.Name == "Obs Est") }); context.SaveChanges(); } context.SaveChanges(); } if (!context.ConversationTypes.Any()) { var con1 = new ConversationType { ConversationDuration = 15, ConversationName = "Voortgangsgesprek", School = schools.First(s => s.Name == "Ods Meester Aafjes") }; var con2 = new ConversationType { ConversationDuration = 10, ConversationName = "Rapportgesprek", School = schools.First(s => s.Name == "Ods Meester Aafjes") }; context.ConversationTypes.Add(con1); context.ConversationTypes.Add(con2); context.SaveChanges(); var groupList1 = new List <ApplicationUserGroup> { context.ApplicationUserGroups.First(g => g.Id == 5), context.ApplicationUserGroups.First(g => g.Id == 2), context.ApplicationUserGroups.First(g => g.Id == 7) }; var groupList2 = new List <ApplicationUserGroup> { context.ApplicationUserGroups.First(g => g.Id == 15), context.ApplicationUserGroups.First(g => g.Id == 13), context.ApplicationUserGroups.First(g => g.Id == 9), context.ApplicationUserGroups.First(g => g.Id == 4) }; foreach (var groupList in groupList1) { context.ConversationTypeClaims.Add(new ConversationTypeClaim { ConversationType = con1, Group = groupList }); } foreach (var groupList in groupList2) { context.ConversationTypeClaims.Add(new ConversationTypeClaim { ConversationType = con2, Group = groupList }); } } if (!context.ConversationPlanDates.Any()) { DateTime[] startDates = { new DateTime(2017, 5, 28), new DateTime(2017, 6, 2), new DateTime(2017, 6, 7), new DateTime(2017, 6, 20) }; DateTime[] endDates = { new DateTime(2017, 6, 8), new DateTime(2017, 6, 19), new DateTime(2017, 6, 29), new DateTime(2017, 7, 5) }; var groupList = new List <List <ApplicationUserGroup> >(); groupList.Add(new List <ApplicationUserGroup> { context.ApplicationUserGroups.First(g => g.Id == 4), context.ApplicationUserGroups.First(g => g.Id == 7) }); groupList.Add(new List <ApplicationUserGroup> { context.ApplicationUserGroups.First(g => g.Id == 5), context.ApplicationUserGroups.First(g => g.Id == 2), context.ApplicationUserGroups.First(g => g.Id == 7) }); groupList.Add(new List <ApplicationUserGroup> { context.ApplicationUserGroups.First(g => g.Id == 15), context.ApplicationUserGroups.First(g => g.Id == 13), context.ApplicationUserGroups.First(g => g.Id == 9), context.ApplicationUserGroups.First(g => g.Id == 4) }); groupList.Add(new List <ApplicationUserGroup> { context.ApplicationUserGroups.First(g => g.Id == 9), context.ApplicationUserGroups.First(g => g.Id == 8) }); for (int i = 0; i < startDates.Length; i++) { var planDate = new ConversationPlanDate { StartDate = startDates[i], EndDate = endDates[i], School = schools.First(s => s.Name == "Ods Meester Aafjes") }; context.ConversationPlanDates.Add(planDate); foreach (var group in groupList[i]) { context.ConversationPlanDateClaims.Add(new ConversationPlanDateClaim { ConversationPlanDate = planDate, Group = group }); } } } if (!context.Users.Any()) { var password = new PasswordHasher <ApplicationUser>(); var userStore = new UserStore <ApplicationUser>(context); UserManager <ApplicationUser> _userManager = serviceProvider.GetService <UserManager <ApplicationUser> >(); string hashed; var owner = new ApplicationUser { Email = "*****@*****.**", UserName = "******", SecurityStamp = Guid.NewGuid().ToString("D") }; owner.NormalizedEmail = owner.Email.ToUpper(); owner.NormalizedUserName = owner.UserName.ToUpper(); hashed = password.HashPassword(owner, "Dalton"); owner.PasswordHash = hashed; await userStore.CreateAsync(owner); await _userManager.AddToRoleAsync(owner, "Eigenaar"); var schoolAdminMA = new ApplicationUser { Email = "*****@*****.**", UserName = "******", SecurityStamp = Guid.NewGuid().ToString("D"), School = schools.First(s => s.Name == "Ods Meester Aafjes") }; schoolAdminMA.NormalizedEmail = schoolAdminMA.Email.ToUpper(); schoolAdminMA.NormalizedUserName = schoolAdminMA.UserName.ToUpper(); hashed = password.HashPassword(schoolAdminMA, "Dalton"); schoolAdminMA.PasswordHash = hashed; await userStore.CreateAsync(schoolAdminMA); await _userManager.AddToRoleAsync(schoolAdminMA, "Schooladmin"); var schoolAdminOE = new ApplicationUser { Email = "*****@*****.**", UserName = "******", SecurityStamp = Guid.NewGuid().ToString("D"), School = schools.First(s => s.Name == "Obs Est") }; schoolAdminOE.NormalizedEmail = schoolAdminOE.Email.ToUpper(); schoolAdminOE.NormalizedUserName = schoolAdminOE.UserName.ToUpper(); hashed = password.HashPassword(schoolAdminOE, "Dalton"); schoolAdminOE.PasswordHash = hashed; await userStore.CreateAsync(schoolAdminOE); await _userManager.AddToRoleAsync(schoolAdminOE, "Schooladmin"); var teacher = new ApplicationUser { Email = "*****@*****.**", UserName = "******", SecurityStamp = Guid.NewGuid().ToString("D"), Group = context.ApplicationUserGroups.First(g => g.GroupName == "Groep 6b"), School = schools.First(s => s.Name == "Ods Meester Aafjes") }; teacher.NormalizedEmail = teacher.Email.ToUpper(); teacher.NormalizedUserName = teacher.UserName.ToUpper(); hashed = password.HashPassword(teacher, "Dalton"); teacher.PasswordHash = hashed; await userStore.CreateAsync(teacher); await _userManager.AddToRoleAsync(teacher, "Leraar"); } await context.SaveChangesAsync(); }