public ActionResult Admin() { var departmentId = User.Identity.GetDepartmentId(); var UsersContext = new ApplicationDbContext(); var collectionPointList = new List <string>() { "Administration Building", "Science School", "Management School", "Medical School", "Engineering School", "University Hospital" }; var adminViewModel = new DepartmentAdminViewModel() { User = UsersContext.Users .Where(x => x.DepartmentId == departmentId) .Where(x => x.Roles.Any(r => r.RoleId == UserRoles.Representative)) .FirstOrDefault(), CollectionPoint = departmentService.Get(departmentId).DepartmentCollectionPoint, CollectionPoints = collectionPointList, Users = UsersContext.Users .Where(x => x.DepartmentId == departmentId) .Where(x => x.Roles.Any(r => r.RoleId == UserRoles.Representative || r.RoleId == UserRoles.Employee)).ToList() }; return(View(adminViewModel)); }
public ActionResult SaveAdmin(DepartmentAdminViewModel viewModel) { ApplicationDbContext context = new ApplicationDbContext(); var departmentId = User.Identity.GetDepartmentId(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); //Update department collection point var department = departmentService.Get(departmentId); department.DepartmentCollectionPoint = viewModel.CollectionPoint; departmentService.Save(department); //Change current representative to employee role var user = context.Users .Where(x => x.DepartmentId == departmentId) .Where(x => x.Roles.Any(r => r.RoleId == UserRoles.Representative)) .FirstOrDefault(); userManager.RemoveFromRole(user.Id, "Representative"); userManager.AddToRole(user.Id, "Employee"); //Change new representative var newRepresentative = userService.FindUserByEmail(viewModel.User.Email); userManager.RemoveFromRole(newRepresentative.Id, "Employee"); userManager.AddToRole(newRepresentative.Id, "Representative"); context.SaveChanges(); return(RedirectToAction("Index", "Home")); }