public bool makeReservation(string sStartCityCode, string sEndCityCode, DateTime dtFlightDate, PassengerInfo[] passengers, PaymentInfo pInfo) { Console.WriteLine("Making reservation for {0} to {1} on {2} for {3} Passengers", sStartCityCode, sEndCityCode, dtFlightDate.ToString(), passengers.Count()); if (DateTime.Compare(dtFlightDate, DateTime.Now) <= 0) return false; List<Flight_DAL.Route> lstRoutes; bool bStatus = false; lock (this) { lstRoutes = myFlightBLL.getFlightBLLInstance().getFlightsBetweenCities(sStartCityCode, sEndCityCode); } if (lstRoutes != null) { Console.WriteLine("Obtained the list of routes. Count - " + lstRoutes.Count); Route r = (from ro in lstRoutes where ro.FlightTime.Equals(dtFlightDate.ToString("HH:mm")) select ro).FirstOrDefault(); if (r != null) { Console.WriteLine("Obtained the route information"); List<Passenger> lstPassengers = getPassengerList(passengers); string sReservationID; lock (this) { sReservationID = myFlightBLL.getFlightBLLInstance().reserveFlight(r.RouteID, dtFlightDate, lstPassengers); bStatus = myFlightBLL.getFlightBLLInstance().makePayment(sReservationID, getPaymentDetails(pInfo)); } } } return bStatus; //default value }
private List<Passenger> getPassengerList(PassengerInfo[] passengers) { List<Passenger> lstPassenger = new List<Passenger>(); Passenger p; foreach (PassengerInfo pInfo in passengers) { p = new Passenger(); p.PassengerName = pInfo.PassengerName; p.PassportNo = pInfo.PassportNo; p.ExpiryDate = pInfo.ExpiryDate; lstPassenger.Add(p); } return lstPassenger; }