public async Task <IActionResult> Register(EmployeeWithPassword employeeWithPassword, string returnUrl) { if (ModelState.IsValid) { Employees employee = employeeWithPassword.Employee; repository.AddEmployee(employee); if (ModelState.IsValid) { EmployeeUser user = new EmployeeUser { UserName = employee.EmployeeId.ToString() }; // Add user to Identity DB IdentityResult result = await userManager.CreateAsync(user, employeeWithPassword.Password); if (!result.Succeeded) { AddErrorsFromResult(result); } else { // Assign user to employee Role result = await userManager.AddToRoleAsync(user, "Employee"); if (!result.Succeeded) { // Delete User from Identity DB await userManager.DeleteAsync(user); repository.DeleteEmployee(employee); AddErrorsFromResult(result); } else { return(RedirectToAction("Index", "Home")); } } } } return(View("Index", new ViewEmployeesModel { EmployeeUsers = userManager.Users, Employees = repository.Employees })); }