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")); } }