예제 #1
0
        public async Task <IActionResult> MakeQuickReservations(object form)
        {
            try
            {
                var jsonStr = form.ToString();

                FlightQuickReservationForm res = new FlightQuickReservationForm();

                res = JsonConvert.DeserializeObject <FlightQuickReservationForm>(jsonStr);

                Flight flight = await context.Flights.Include(x => x.FlightDestinations).ThenInclude(x => x.Destination).SingleOrDefaultAsync(x => x.Id == res.FlightId);

                foreach (var seat in res.Seats)
                {
                    FlightQuickReservation resQ = new FlightQuickReservation()
                    {
                        Arrival   = flight.Arrival,
                        Departure = flight.Departure,
                        SeatNo    = seat.Id,
                        Class     = seat.Class,
                        Discount  = res.Discount,
                        Price     = seat.Price,
                        TakeOff   = flight.TakeOff,
                        Reserved  = false,
                        FlightId  = flight.Id
                    };

                    await context.FlightQuickReservations.AddAsync(resQ);

                    await context.SaveChangesAsync();
                }


                return(Ok());
            }
            catch (DbUpdateConcurrencyException e)
            {
                return(NotFound());
            }
            catch (Exception e)
            {
                return(NoContent());
            }
        }
예제 #2
0
        public async Task <IActionResult> BookQuickFlightReservation(int id)
        {
            try
            {
                FlightQuickReservation res = await context.FlightQuickReservations.FindAsync(id);

                res.Reserved = true;

                context.FlightQuickReservations.Update(res);
                await context.SaveChangesAsync();

                return(Ok());
            }
            catch (DbUpdateConcurrencyException e)
            {
                return(NotFound());
            }
            catch (Exception e)
            {
                return(NoContent());
            }
        }