Beispiel #1
0
        public Guid MakeReservation(MakeReservationViewModel model)
        {
            using (var tran = db.Database.BeginTransaction())
            {
                try
                {
                    var reservation = new Reservation
                    {
                        ReservationDate = model.ReservationDate,
                        CheckOutDate    = model.CheckOutDate,
                        RoomId          = model.RoomId
                    };
                    db.Reservations.Add(reservation);
                    db.SaveChanges();

                    foreach (var registerViewModel in model.RegisterViewModels)
                    {
                        db.ReservationDetails.Add(new ReservationDetail()
                        {
                            FirstName       = registerViewModel.Firstname,
                            LastName        = registerViewModel.Surname,
                            ReservationId   = reservation.Id,
                            TelephoneNumber = registerViewModel.Number
                        });
                        db.SaveChanges();
                    }

                    var room = db.Rooms.Find(model.RoomId);
                    room.IsEmpty = false;
                    db.SaveChanges();

                    tran.Commit();
                    return(reservation.Id);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw;
                }
            }
        }
Beispiel #2
0
        public async Task <IActionResult> MakeReservation(int?eventId, DateTime EventDate, string VenueCode)
        {
            if (eventId == null || VenueCode == null)
            {
                return(NotFound());
            }

            var thisEvent = await _context.Events.FindAsync(eventId);

            HttpClient client = new HttpClient();

            client.BaseAddress = new System.Uri("http://localhost:22263/");

            var reservation = new MakeReservationViewModel
            {
                EventDate = EventDate,
                VenueCode = VenueCode
            };

            HttpResponseMessage response = await client.PostAsJsonAsync("api/reservations/", reservation);

            if (response.IsSuccessStatusCode)
            {
                if (!String.IsNullOrEmpty(thisEvent.VenueCode))
                {
                    var reference = thisEvent.VenueCode + EventDate.ToString("yyyy/MM/dd");
                    await client.DeleteAsync("api/reservations/" + reference);
                }

                thisEvent.VenueCode = reservation.VenueCode;
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(BadRequest());
            }
        }