public async Task <IActionResult> Create(VerenigingEditViewModel evm) { if (ModelState.IsValid) { try { evm.IBAN = NormalizeIBAN(evm.IBAN); Vereniging vereniging = new Vereniging(evm.Email, evm.Naam, evm.EmailZeden, evm.IBAN); //create identity user aka account om in te loggen, standaard wachten P@ssword1 var user = new IdentityUser { UserName = evm.Email, Email = evm.Email }; Random random = new Random(); int passNumber = random.Next(100); string password; if (vereniging.NormalizedGroepNaam.Length > 8) { password = $"{vereniging.NormalizedGroepNaam.Substring(0,8)}@ww{passNumber}!"; } else { password = $"{vereniging.NormalizedGroepNaam}@ww{passNumber}!"; } await _userManager.CreateAsync(user, password); await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "vereniging")); await MapVerenigingEditViewModelToVereniging(evm, vereniging); _verenigingRepository.Add(vereniging); _verenigingRepository.SaveChanges(); //send mail to vereniging about new account if (evm.SendMail) { SendMailVerenigingUpdate(vereniging, password, true); } int verenigingId = _verenigingRepository.GetByMail(evm.Email).GroepId; TempData["message"] = $"U heeft succesvol de vereniging {vereniging.GroepNaam} aangemaakt"; return(RedirectToAction(nameof(Details), new { id = verenigingId })); } catch (Exception e) { TempData["error"] = $"Sorry, er liep iets fout, de vereniging kon niet worden aangemaakt: {e.Message}"; } } ViewData["IsEdit"] = false; ViewData["Konventen"] = GetKonventenAsSelectList(); return(View(nameof(Edit), evm)); }