public List<Reservation> getAllReservations()
 {
     flightContext.ContextOptions.LazyLoadingEnabled = false;
     var rQuery = from r in flightContext.Reservations
                   select r;
     if (rQuery == null) return null;
     if (rQuery.Count() == 0) return null;
     Reservation res = null;
     List<Reservation> lstReservation = new List<Reservation>();
     foreach (var reserve in rQuery)
     {
         if (!reserve.Passengers.IsLoaded)
             reserve.Passengers.Load();
         res = new Reservation();
         res.ReservationID = reserve.ReservationID;    //set reservationid
         res.ReservationDate = reserve.ReservationDate; //set reservation date
         res.RouteID = reserve.RouteID;                //set route id
         res.FlightDate = reserve.FlightDate;            //set the flight date
         //todo - add the passenger list to the reservation.
         //res.Passengers = reserve.Passengers;
         res.Passengers = new System.Data.Objects.DataClasses.EntityCollection<Passenger>();
         reserve.Passengers.ToList().ForEach(p => res.Passengers.Add(p));
         lstReservation.Add(res);
     }
     return lstReservation;
 }
 //get all the reservations done for a given date for a given route
 public List<Reservation> getAllReservationsForDateOnRoute(int iRouteID, DateTime dtFlight)
 {
     var rQuery = (from r in flightContext.Reservations
                   where r.RouteID == iRouteID && (DateTime.Compare(r.FlightDate, dtFlight) == 0)
                   select r);
     if (rQuery == null) return null;
     if (rQuery.Count() == 0) return null;
     Reservation res = null;
     List<Reservation> lstReservation = new List<Reservation>();
     foreach (var reserve in rQuery)
     {
         res = new Reservation();
         res.ReservationID = reserve.ReservationID;    //set reservationid
         res.ReservationDate = reserve.ReservationDate; //set reservation date
         res.RouteID = reserve.RouteID;                //set route id
         res.FlightDate = reserve.FlightDate;           // set the flight date
         res.Passengers = new System.Data.Objects.DataClasses.EntityCollection<Passenger>();
         reserve.Passengers.ToList().ForEach(p => res.Passengers.Add(p));
         lstReservation.Add(res);
     }
     return lstReservation;
 }
 //Make reservation on a flight
 public int saveReservation(Reservation r)
 {
     try
     {
         flightContext.AddToReservations(r);
         foreach (Passenger p in r.Passengers)
         {
             flightContext.AddToPassengers(p);
         }
         return flightContext.SaveChanges();
     }
     catch (Exception e)
     {
         throw new FlightException("Error thrown while saving the Reservations- "+e.Message);
     }
 }
 public string reserveFlight(int iRouteID, DateTime dtFlight, List<Flight_DAL.Passenger> lstPassengers)
 {
     IFlightDAL flightDAL = FlightDAOFactory.getInstance().getFlightDALInstance();
     //Generate a ReservationID of length 8
     string sMainReservationStr= generateReservationID(8);
     int iPassengerID = flightDAL.getNextPassengerID();  //get the last id of the passenger stored in database
     try
     {
         //check if seats are available
         if (checkIfAvailable(iRouteID, dtFlight, lstPassengers.Count))
         {
             Reservation r = new Reservation();
             r.ReservationID = sMainReservationStr;
             r.RouteID = iRouteID;
             r.ReservationDate = DateTime.Now;
             r.FlightDate = dtFlight;
             //add the first passenger from the list to the passengerlists
             foreach (Passenger p in lstPassengers)
             {
                 p.PassengerID = iPassengerID++;
                 p.ReservationID = sMainReservationStr;
                 r.Passengers.Add(p);
             }
             flightDAL.saveReservation(r);
             return sMainReservationStr;
         }
         else
         {
             throw new FlightException("Seats not available on the route selected!");
         }
     }
     catch (FlightException f)
     {
         Console.WriteLine(f.Message);
         throw f;
     }
 }
 /// <summary>
 /// Create a new Reservation object.
 /// </summary>
 /// <param name="reservationID">Initial value of the ReservationID property.</param>
 /// <param name="routeID">Initial value of the RouteID property.</param>
 /// <param name="reservationDate">Initial value of the ReservationDate property.</param>
 /// <param name="flightDate">Initial value of the FlightDate property.</param>
 public static Reservation CreateReservation(global::System.String reservationID, global::System.Int32 routeID, global::System.DateTime reservationDate, global::System.DateTime flightDate)
 {
     Reservation reservation = new Reservation();
     reservation.ReservationID = reservationID;
     reservation.RouteID = routeID;
     reservation.ReservationDate = reservationDate;
     reservation.FlightDate = flightDate;
     return reservation;
 }
 /// <summary>
 /// Deprecated Method for adding a new object to the Reservations EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToReservations(Reservation reservation)
 {
     base.AddObject("Reservations", reservation);
 }