Пример #1
0
        public IActionResult CancelReservation(ReserveTableBody body)
        {
            var request = new UpdateTableReservationRequest
            {
                CustomerId    = body.CustomerId,
                ReservationId = body.TableId
            };

            var response = _tableService.UpdateTableReservation(request);

            if (response.IsSuccessful)
            {
                return(Ok(response));
            }
            else
            {
                return(BadRequest());
            }
        }
        public UpdateTableReservationResponse UpdateTableReservation(UpdateTableReservationRequest request)
        {
            var response = new UpdateTableReservationResponse
            {
                IsSuccessful = false,
                Table        = null
            };

            try
            {
                var customer = _context.Customers
                               .FirstOrDefault(x => x.Id == request.CustomerId);

                var reservation = _context.TableReservations
                                  .Include(x => x.Customer)
                                  .Where(x => x.Customer.FirstName == customer.FirstName)
                                  .Where(x => x.Customer.LastName == customer.LastName)
                                  .Where(x => x.Customer.Id == customer.Id)
                                  .FirstOrDefault(x => x.Id == request.ReservationId);

                _context.Update(reservation);

                reservation.Customer       = null;
                reservation.SubmissionTime = null;

                _context.SaveChanges();
                response.IsSuccessful = true;
                response.Message      = $"Successfully cancelled table reservation with Id: {reservation.Id}.";
            }
            catch (Exception ex)
            {
                response.IsSuccessful = false;
                response.Message      = ex.ToString();
            }

            return(response);
        }