public ActionResult Edit(int id, LunchCreateEditViewModel lunchCredteEditViewModel) { // todo: validate lunch-creator can edit a lunch var selectedRestaurants = lunchCredteEditViewModel.Restaurants.Where(r => r.IsChecked).Select(r => r.ID).ToList(); var lunch = _context .Lunches .Include(l => l.Restaurants) .First(l => l.Id == id); if (ModelState.IsValid) { lunch.Host = lunchCredteEditViewModel.Host; lunch.MeetingTime = lunchCredteEditViewModel.MeetingTime; foreach (var restaurantId in selectedRestaurants) { var restaurant = _context.Restaurants.Find(restaurantId); lunch.Restaurants.Add(restaurant); } _context.Entry(lunch).State = EntityState.Modified; _context.SaveChanges(); return(RedirectToAction("Index")); } return(View("Edit", lunchCredteEditViewModel)); }
public ActionResult Create(LunchCreateEditViewModel lunchCreateEditViewModel) { var selectedRestaurants = lunchCreateEditViewModel.Restaurants.Where(r => r.IsChecked).Select(r => r.ID).ToList(); if (ModelState.IsValid) { var lunch = new Lunch() { Host = lunchCreateEditViewModel.Host, MeetingTime = lunchCreateEditViewModel.MeetingTime }; foreach (var restaurantId in selectedRestaurants) { var restaurant = _context.Restaurants.Find(restaurantId); lunch.Restaurants.Add(restaurant); } _context.Lunches.Add(lunch); _context.SaveChanges(); return(RedirectToAction("Index")); } return(View("Create", lunchCreateEditViewModel)); }
// GET: Lunches/Create public ActionResult Create() { // todo: validate only signed-in PPA user can create a lunch var lunchCreateEditViewModel = new LunchCreateEditViewModel(); var allRestaurants = _context.Restaurants.ToList(); var checkBoxListItems = allRestaurants.Select(restaurant => new CheckBoxListItem() { ID = restaurant.Id, Display = restaurant.Name, IsChecked = false }) .OrderBy(r => r.Display) .ToList(); lunchCreateEditViewModel.Restaurants = checkBoxListItems; return(View("Create", lunchCreateEditViewModel)); }
// GET: Lunches/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var lunch = _context.Lunches.Find(id); if (lunch == null) { return(new HttpNotFoundResult()); } lunch = _context .Lunches .Include(l => l.Restaurants) .First(l => l.Id == id); var lunchCreateEditViewModel = new LunchCreateEditViewModel { Host = lunch.Host, MeetingTime = lunch.MeetingTime, }; var lunchRestaurants = lunch.Restaurants; var allRestaurants = _context.Restaurants.ToList(); var checkBoxListItems = allRestaurants.Select(restaurant => new CheckBoxListItem { ID = restaurant.Id, Display = restaurant.Name, IsChecked = lunchRestaurants.Any(r => r.Id == restaurant.Id) }).ToList(); lunchCreateEditViewModel.Restaurants = checkBoxListItems; return(View("Edit", lunchCreateEditViewModel)); }