public async Task <IActionResult> AddToRole(AddUserToRoleFormModel model) { var roleExists = await this.roleManager.RoleExistsAsync(model.Role); var user = await this.userManager.FindByIdAsync(model.UserId); var userExists = user != null; if (!roleExists || !userExists) { ModelState.AddModelError(string.Empty, "User or role does not exists."); return(RedirectToAction(nameof(Index))); } if (!ModelState.IsValid) { ModelState.AddModelError(string.Empty, "Invalid model state."); return(RedirectToAction(nameof(Index))); } await this.userManager.AddToRoleAsync(user, model.Role); // If the profile does not exists create new teacher profile if (model.Role == TeacherRole && !usersService.TeacherProfileExists(model.UserId)) { await usersService.CreateTeacherProfile(model.UserId); } TempData.AddSuccessMessage($"User {user.UserName} successfully added to the {model.Role} role."); return(RedirectToAction(nameof(Index))); }