public void Post([FromBody] ReservationViewModel value) { try { //add new reservation var lastId = _context.Reservations.AsEnumerable().Last().ReservationId + 1; var newReservation = new Reservation { ReservationId = lastId, Name = value.Name, Date = value.Date }; _context.Reservations.Add(newReservation); //add a list of items to the new reservation bridge relations //for (int i = 0; i < value.MenuItems.Count(); i++) //{ // var item = new MenuReservation // { // ID = _context.MenuReservation.AsEnumerable().Last().ID + 1, // ReservationId = newReservation.ReservationId, // MenuId = value.MenuItems[i].MenuId // }; // _context.MenuReservation.Add(item); //} foreach (MenuItem mi in value.MenuItems) { MenuReservation rmi = new MenuReservation { MenuId = mi.MenuId, ReservationId = newReservation.ReservationId }; _context.MenuReservation.Add(rmi); } _context.SaveChanges(); } catch (Exception ex) { // ex.Message; _logger.LogError(ex.Message); } }
public void Put(int id, [FromBody] ReservationViewModel value) { /* * ReservationViewModel result = (ReservationViewModel)_context * * .MenuReservation * * .Select(r => r.Reservation) * * .Distinct() * .Where(r => r.ReservationId == id) * * .Select(r => new ReservationViewModel * { * * Name = r.Name, * * Date = r.Date, * * MenuItems = _context * * .MenuReservation * * .Where(rmi => rmi.ReservationId == r.ReservationId) * * .Select(rmi => rmi.MenuItem) * * .ToList() * * }); * * if (result != null) * { * result.Name = value.Name; * result.Date = value.Date; * _context.SaveChanges(); * * } */ Reservation reservation = _context .Reservations .Where(r => r.ReservationId == id) .FirstOrDefault(); if (reservation != null) { reservation.Name = value.Name; reservation.Date = value.Date; var rangeMI = _context.MenuReservation .Where(rmi => rmi.ReservationId == id).ToList(); _context.MenuReservation.RemoveRange(rangeMI); foreach (MenuItem mi in value.MenuItems) { MenuReservation rmi = new MenuReservation { MenuId = mi.MenuId, ReservationId = id }; _context.MenuReservation.Add(rmi); } _context.SaveChanges(); } }