public ActionResult AddStudentRol(AccountbeheerVM model) { bool inArray = false; List <StudentRollen> studentrollen = new List <StudentRollen>(); for (int i = 0; i < model.SelectedRolId.Count; i++) { Rol selectedRol = new Rol(); for (int s = 0; s < studentrollen.Count; s++) { if (model.SelectedStudentId[i].Equals(studentrollen[s].Student.ID)) { for (int r = 0; r < studentrollen[s].Rollen.Count; r++) { //unieke studentrol? if (model.SelectedRolId[i].Equals(studentrollen[s].Rollen[r].ID)) { ViewBag.Error = "De rol voor een gekozen student dient uniek te zijn."; var accountbeheerVM = new AccountbeheerVM(); accountbeheerVM.Studenten = new SelectList(studentService.GetStudenten(), "ID", "Naam"); accountbeheerVM.Accounts = studentService.GetUsers(); accountbeheerVM.Rollen = new SelectList(studentService.GetRoles(), "ID", "Naam"); List <StudentKeuzeVM> studentKeuzes = new List <StudentKeuzeVM>(); foreach (ApplicationUser beoordelaar in accountbeheerVM.Accounts) { StudentKeuzeVM vm = new StudentKeuzeVM(); vm.Studenten = studentService.GetStudentenByStudentRollen(beoordelaar.StudentRollen); vm.RollenPerStudent = studentService.GetRollenByStudent(beoordelaar.StudentRollen); vm.Aantal = studentService.GetAantalTeTonenStudenten(beoordelaar.StudentRollen); vm.StudentenString = studentService.SerializeObject(vm.Studenten, vm.RollenPerStudent, beoordelaar.Id); studentKeuzes.Add(vm); } accountbeheerVM.studentKeuzesVM = studentKeuzes; accountbeheerVM.StudentenString = studentService.SerializeObject(accountbeheerVM.Accounts); accountbeheerVM.SelectedStudentId = model.SelectedStudentId; accountbeheerVM.SelectedRolId = model.SelectedRolId; return(View(accountbeheerVM)); } } selectedRol = studentService.GetRolById(model.SelectedRolId[i]); studentrollen[s].Rollen.Add(selectedRol); inArray = true; } } if (!inArray) { Student selectedStudent = studentService.GetStudentByID(model.SelectedStudentId[i]); List <Rol> selectedRollen = new List <Rol>(); selectedRollen.Add(studentService.GetRolById(model.SelectedRolId[i])); StudentRollen studentrol = studentrolService.CreateStudentrol(selectedStudent, selectedRollen); studentrollen.Add(studentrol); } } var user = new ApplicationUser() { UserName = model.registerVM.UserName }; user.StudentRollen = studentrollen; var users = studentService.GetUsers(); foreach (ApplicationUser gebruiker in users) { //unieke gebruiker? if (gebruiker.UserName.ToLower() == user.UserName.ToLower()) { ViewBag.Error = "De gebruiker bestaat al."; var accountbeheerVM = new AccountbeheerVM(); accountbeheerVM.Studenten = new SelectList(studentService.GetStudenten(), "ID", "Naam"); accountbeheerVM.Accounts = studentService.GetUsers(); accountbeheerVM.Rollen = new SelectList(studentService.GetRoles(), "ID", "Naam"); List <StudentKeuzeVM> studentKeuzes = new List <StudentKeuzeVM>(); foreach (ApplicationUser beoordelaar in accountbeheerVM.Accounts) { StudentKeuzeVM vm = new StudentKeuzeVM(); vm.Studenten = studentService.GetStudentenByStudentRollen(beoordelaar.StudentRollen); vm.RollenPerStudent = studentService.GetRollenByStudent(beoordelaar.StudentRollen); vm.Aantal = studentService.GetAantalTeTonenStudenten(beoordelaar.StudentRollen); vm.StudentenString = studentService.SerializeObject(vm.Studenten, vm.RollenPerStudent, beoordelaar.Id); studentKeuzes.Add(vm); } accountbeheerVM.studentKeuzesVM = studentKeuzes; accountbeheerVM.StudentenString = studentService.SerializeObject(accountbeheerVM.Accounts); accountbeheerVM.SelectedStudentId = model.SelectedStudentId; accountbeheerVM.SelectedRolId = model.SelectedRolId; return(View(accountbeheerVM)); } } var result = userService.Create(user, model.registerVM.Password); userService.AddUserToRoleUser(user.Id); return(RedirectToAction("AddStudentRol", "Accountbeheer")); }