public async Task <IActionResult> TeacherRegister(RegisterTeacherViewModel registerUserViewModel) { registerUserViewModel.DeparmentItems = populateDepartments(); registerUserViewModel.PositionItems = populatePositions(); if (_databaseWorker.DepartmentExists(registerUserViewModel.DepartmentId) && _databaseWorker.PositionExists(registerUserViewModel.PositionId)) { if (ModelState.IsValid) { IdentityResult result = await _authentication.CreateUserAsync(registerUserViewModel); if (result.Succeeded) { User user = await _authentication.FindUserByEmailAsync(registerUserViewModel.Email); if (!await _authentication.CreateTeacherUserAsync(user.Id, registerUserViewModel.DepartmentId, registerUserViewModel.PositionId)) { await _authentication.DeleteUserAsync(user); return(View(registerUserViewModel)); } // установка куки await _authentication.SignInAsync(user); return(RedirectToAction("Index", "Home")); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } } else { ModelState.AddModelError(string.Empty, "Choosen Department or Position does not exists!"); } return(View(registerUserViewModel)); }
public async Task <IActionResult> CreateTeacher(RegisterTeacherViewModel registerUserViewModel) { registerUserViewModel.DeparmentItems = PopulateDepartments(); registerUserViewModel.PositionItems = PopulatePositions(); if (_databaseWorker.DepartmentExists(registerUserViewModel.DepartmentId) && _databaseWorker.PositionExists(registerUserViewModel.PositionId)) { if (ModelState.IsValid) { IdentityResult result = await _authentication.CreateUserAsync(registerUserViewModel); if (result.Succeeded) { User user = await _authentication.FindUserByEmailAsync(registerUserViewModel.Email); if (!await _authentication.CreateTeacherUserAsync(user.Id, registerUserViewModel.DepartmentId, registerUserViewModel.PositionId)) { await _authentication.DeleteUserAsync(user); return(View("CreateTeacher", registerUserViewModel)); } return(RedirectToAction("Users")); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } } else { ModelState.AddModelError(string.Empty, "Выбирете кафедру для преподователя"); } return(View("CreateTeacher", registerUserViewModel)); }