public CreateTableReservationResponse CreateTableReservation(CreateTableReservationRequest request)
        {
            var response = new CreateTableReservationResponse
            {
                IsSuccessful = false,
                Message      = ""
            };

            try
            {
                var table = _context.TableReservations
                            .Include(x => x.Customer)
                            .FirstOrDefault(x => x.Id == request.TableId);

                if (table != null)
                {
                    // Start tracking entity.
                    _context.Update(table);

                    if (table.Customer == null)
                    {
                        // Look up the customer.
                        var customer = _context.Customers
                                       .FirstOrDefault(x => x.Id == request.CustomerId);

                        table.Customer       = customer;
                        table.PartySize      = request.PartySize;
                        table.SubmissionTime = DateTime.Now;

                        _context.SaveChanges();
                        response.IsSuccessful = true;
                        response.Message      = "Successfully created table reservation.";
                        response.Reservation  = table;
                    }
                }
            }
            catch (Exception ex)
            {
                response.Message = ex.ToString();
            }

            return(response);
        }
Exemple #2
0
        public IActionResult ReserveTable(ReserveTableBody body)
        {
            var request = new CreateTableReservationRequest
            {
                CustomerId = body.CustomerId,
                PartySize  = body.PartySize,
                TableId    = body.TableId
            };

            var response = _tableService.CreateTableReservation(request);

            if (response.IsSuccessful)
            {
                return(Ok(response.Reservation));
            }
            else
            {
                return(BadRequest());
            }
        }