Beispiel #1
0
 public IHttpActionResult Create(Passenger passengers)
 {
     if (_passengerManager.CreatePassenger(passengers) == 1)
     {
         return(Ok("Success"));
     }
     else
     {
         return(BadRequest());
     }
 }
        /// <summary>
        /// Make Booking
        /// </summary>
        /// <param name="booking"></param>
        /// <returns></returns>
        public async Task <Tuple <HttpStatusCode, string> > MakeBooking(CreateBookingRequestDeatils booking)
        {
            if (booking.FlightDetails != null && !String.IsNullOrEmpty(booking.FlightDetails.DepartureDate) &&
                !String.IsNullOrEmpty(booking.FlightDetails.ArrivalDate) &&
                !String.IsNullOrEmpty(booking.FlightDetails.DepartureCityCode) &&
                !String.IsNullOrEmpty(booking.FlightDetails.ArrivalCityCode) &&
                !String.IsNullOrEmpty(booking.FlightDetails.DepartureTime) &&
                !String.IsNullOrEmpty(booking.FlightDetails.ArrivalTime))
            {
                var flightDetails = await flightManager.GetFlightDetails(booking.FlightDetails);

                if (flightDetails != null && booking.Passenger != null && booking.Passenger.Count() > 0)
                {
                    var passengerCount = booking.Passenger.Count();
                    if (flightDetails.Capacity > booking.Passenger.Count())
                    {
                        var pnr    = String.Format("{0:000000}", new Random().Next(000000, 999999));
                        var status = await UpdateBooking(pnr, flightDetails, passengerCount);

                        if (status)
                        {
                            foreach (Passenger passenger in booking.Passenger)
                            {
                                var passengerId = await passengerManager.CreatePassenger(passenger);

                                await passengerManager.UpdatePassengerBookingRecord(passengerId, pnr);
                            }
                            return(new Tuple <HttpStatusCode, string>(HttpStatusCode.OK, pnr));
                        }
                        else
                        {
                            return(new Tuple <HttpStatusCode, string>(HttpStatusCode.BadRequest, "something went wrong while creating booking"));
                        }
                    }
                    else
                    {
                        return(new Tuple <HttpStatusCode, string>(HttpStatusCode.NotFound, "capacity exceeded"));
                    }
                }
                else
                {
                    return(new Tuple <HttpStatusCode, string>(HttpStatusCode.BadRequest, "flight details not valid"));
                }
            }
            else
            {
                return(new Tuple <HttpStatusCode, string>(HttpStatusCode.BadRequest, "Supplied flight details are not correct"));
            }
        }