public async Task <ActionResult> AddChefToRestaurant(AddChefToRestaurantViewModel model) { var selectedIds = model.getSelectedIds(); Resto restoFound = await DbManager.Restos.FirstOrDefaultAsync(resto => resto.Name == model.RestoName); if (restoFound != null) { var selectedUsers = from x in DbManager.Users where selectedIds.Contains(x.Id) select x; if (model.chefOrNotAdmin) { restoFound.Chefs.Clear(); } else { restoFound.Administrators.Clear(); } foreach (var user in selectedUsers) { if (model.chefOrNotAdmin) { restoFound.Chefs.Add(user); } else { restoFound.Administrators.Add(user); } } await DbManager.SaveChangesAsync(); return(RedirectToAction("Edit", new { id = restoFound.Id })); } else { return(View("Error")); } }
public async Task <ActionResult> AddChefToRestaurant(int RestoId, bool ChefOrNotAdmin) { ICollection <ApplicationUser> UserList = await UserManager.Users.ToListAsync(); Resto restofound = await DbManager.Restos.FirstOrDefaultAsync(resto => resto.Id == RestoId); if (UserList != null && restofound != null) { var model = new AddChefToRestaurantViewModel() { RestoName = restofound.Name, chefOrNotAdmin = ChefOrNotAdmin }; foreach (var user in UserList) { var userViewModel = new SelectUserRestoViewModel() { Id = user.Id, UserName = user.UserName, Email = user.Email, Selected = true }; if (restofound.Chefs.FirstOrDefault(m => m.Id == user.Id) == null && ChefOrNotAdmin) { userViewModel.Selected = false; } if (restofound.Administrators.FirstOrDefault(m => m.Id == user.Id) == null && !ChefOrNotAdmin) { userViewModel.Selected = false; } model.User.Add(userViewModel); } return(View(model)); } return(View("Error")); }