public async Task <IActionResult> Edit(int id, int[] GroepId, [Bind("Id,Voornaam,Achternaam,Tussenvoegsel,Studentnummer")] Student student) { if (id != student.Id) { return(NotFound()); } if (ModelState.IsValid) { try { Student existingStudent = _context.Student.Include(s => s.Groepen).FirstOrDefault(s => s.Id == id); existingStudent.Groepen.Clear(); foreach (var item in GroepId) { StudentGroep sg = new StudentGroep { GroepId = item }; existingStudent.Groepen.Add(sg); } existingStudent.Voornaam = student.Voornaam; existingStudent.Tussenvoegsel = student.Tussenvoegsel; existingStudent.Achternaam = student.Achternaam; existingStudent.Studentnummer = student.Studentnummer; //_context.Update(student); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!StudentExists(student.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(student)); }
public async Task <IActionResult> Create(int [] GroepId, [Bind("Id,Voornaam,Achternaam,Tussenvoegsel,Studentnummer")] Student student) { string rs = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 2); Random generator = new Random(); int ri = generator.Next(9999, 99999); var studentnummer = rs + ri.ToString(); if (_context.Student.Where(s => s.Studentnummer == studentnummer) == null) { student.Studentnummer = studentnummer; } else { student.Studentnummer = ri.ToString() + rs; } List <StudentGroep> UpdateList = new List <StudentGroep>(); foreach (var groep in GroepId) { StudentGroep sg = new StudentGroep { GroepId = groep }; //sg.StudentId = student.Id; UpdateList.Add(sg); } student.Groepen = UpdateList; if (ModelState.IsValid) { _context.Add(student); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(student)); }
public async Task <IActionResult> OnPostAsync(int[] GroepId, string returnUrl = null) { ViewData["Groepen"] = _context.Groep.ToList(); returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { string rs = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 2); Random generator = new Random(); int ri = generator.Next(9999, 99999); var sgNummer = rs + ri.ToString(); string password = "******"; var email = sgNummer + "@wrx.sdt"; //string username = Input.Voornaam + " " + Input.Achternaam; var user = new ApplicationUser { UserName = email, Email = email, Gebruikersnummer = sgNummer }; var result = await _userManager.CreateAsync(user, password); if (result.Succeeded) { List <StudentGroep> UpdateList = new List <StudentGroep>(); foreach (var groep in GroepId) { StudentGroep sg = new StudentGroep { GroepId = groep }; UpdateList.Add(sg); } var student = new Student { Voornaam = Input.Voornaam, Tussenvoegsel = Input.Tussenvoegsel, Achternaam = Input.Achternaam, Email = email, Studentnummer = sgNummer }; student.Groepen = UpdateList; _context.Student.Add(student); await _context.SaveChangesAsync(); _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Bevestig je account door <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>hier</a> te klikken."); await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }