public async Task <ActionResult> CreateHR([Bind(Include = "FirstName, LastName, Email, SelectedFirstManager, SelectedSecondManager, SelectedDepartment, IsMedewerker, IsManager, IsHRManager, previousUrl")] EditModel input) { var user = input.ToApplicationUser(); //Zet data klaar voor wanneer de gegevens niet goed zijn ingevuld, dan wordt de webpagina opnieuw terug gestuurd. var managers = _manService.GetAll(); List <object> listmanagers = new List <object>(); foreach (var item in managers) { listmanagers.Add(new { ManagerID = item.ManagerID, Name = item.ApplicationUser.FirstName + " " + item.ApplicationUser.LastName }); } var dropdownmanagers = new SelectList(listmanagers, "ManagerID", "Name"); var departments = _depService.GetAllDepartments(); List <object> listdepartments = new List <object>(); foreach (var item in departments) { listdepartments.Add(new { DepartmentID = item.DepartmentID, Name = item.DepartmentName }); } var dropdowndepartments = new SelectList(listdepartments, "DepartmentID", "Name"); var model = new EditModel(); input.FirstManagers = dropdownmanagers; input.SecondManagers = dropdownmanagers; input.Departments = dropdowndepartments; //Creeert foutmeldingen waar nodig. if (_userService.UserExists(user.Email)) { ShowMessage("Deze gebruiker bestaat al", MessageType.Danger); return(View("CreateHR", input)); } if (_userService.EmailExists(user.Email)) { ShowMessage("Deze gebruiker bestaat al", MessageType.Danger); return(View("CreateHR", input)); } if (user.IsMedewerker == false) { ShowMessage("Een gebruiker moet minimaal de rechten krijgen van medewerker", MessageType.Danger); return(View("CreateHR", input)); } if (user.FirstName == null) { ShowMessage("U heeft de volgende waarde niet ingevuld: Voornaam", MessageType.Danger); return(View("CreateHR", input)); } if (user.LastName == null) { ShowMessage("U heeft de volgende waarde niet ingevuld: Achternaam", MessageType.Danger); return(View("CreateHR", input)); } if (user.Email == null) { ShowMessage("U heeft de volgende waarde niet ingevuld: E-mailadres", MessageType.Danger); return(View("CreateHR", input)); } var expiryDate = DateTime.Now.AddDays(Properties.Settings.Default.FirstPasswordResetTimeOutInDays); var token = string.Format("{0}|{1}", user.UserID, expiryDate.ToString("yyyyMMddHHmmss")).HashToMd5(); //Slaat de veranderingen op in de database. if (ModelState.IsValid) { _userService.Save(user); token = HttpUtility.UrlEncode(token); var link = string.Format(@"<a href=""{0}"">link</a>", Url.Action("Login", "Account", new { t = token }, Request.Url.Scheme)); await MailHelper.Welcome(user.Email, link); if (input.IsManager == true) { if (_manService.IsManager(input.UserID) == false) { var manager = input.ToManager(user); if (ModelState.IsValid) { _manService.Save(manager); } } else { var manager = _manService.Get(_manService.GetManageridByUserID(input.UserID)); input.ToManager(user, manager); if (ModelState.IsValid) { _manService.Save(manager); } } } TempData["Saved"] = "true"; return(RedirectToAction("IndexHR", "User")); } //Wanneer er iets is misgegaan, wordt de webpagina opnieuw getoond. return(View(input)); }