示例#1
0
        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);
            }
        }
示例#2
0
        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();
            }
        }