public ActionResult ChangeHead(int id) { var department = _context .Departments .Include(d => d.DepartmentHead) .Include(d => d.Instructors) .Single(d => d.Id == id); var viewModel = new ChangeDepartmentHeadViewModel { OldDepartmentHead = department.DepartmentHead, OldDepartmentHeadAccountId = department.DepartmentHead.AccountId, DepartmentHeadId = department.DepartmentHeadId, Instructors = department.Instructors, Name = department.Name }; return(View(viewModel)); }
public async Task <ActionResult> ChangeHead(ChangeDepartmentHeadViewModel model) { if (ModelState.IsValid) { var departmentInDb = _context.Departments.Single(d => d.Id == model.Id); // find the old department head and remove him from the department head role var userStore = new UserStore <ApplicationUser>(new ApplicationDbContext()); var userManager = new ApplicationUserManager(userStore); var result = await userManager.RemoveFromRoleAsync(model.OldDepartmentHeadAccountId, RoleName.IsADepartmentHead); if (result.Succeeded) { departmentInDb.DepartmentHeadId = model.DepartmentHeadId; } } return(View()); }