Esempio n. 1
0
        public FlightCollection GetFlights(Airport origin, Airport destination, DateTime departureDate)
        {
            #region Sanity Checks
            AssertUtils.ArgumentNotNull(origin, "origin");
            AssertUtils.ArgumentNotNull(destination, "destination");
            #endregion

            FlightCollection flights = new FlightCollection();


            IDbParametersBuilder builder = new DbParametersBuilder(DbProvider);
            builder.Create().Name("departureDate").Type(DbType.Date).Value(departureDate);
            builder.Create().Name("departureAirport").Type(DbType.Int32).Value(origin.Id);
            builder.Create().Name("destinationAirport").Type(DbType.Int32).Value(destination.Id);

#if NET_2_0
            AdoTemplate.QueryWithRowCallbackDelegate(CommandType.Text, FlightsQuery,
                                                     delegate(IDataReader dataReader)
            {
                int flightId        = dataReader.GetInt32(0);
                string flightNumber = dataReader.GetString(1);
                Aircraft aircraft   = aircraftDao.GetAircraft(dataReader.GetInt32(2));

                //TODO: Load cabins from the database
                Cabin[] cabins = aircraft.Cabins;

                Flight flight = new Flight(flightId, flightNumber, origin, destination, aircraft, departureDate, cabins);
                flights.Add(flight);
            },


                                                     builder.GetParameters());
#else
            AdoTemplate.QueryWithRowCallback(CommandType.Text, FlightsQuery,
                                             new FlightRowCallback(flights, aircraftDao, origin, destination, departureDate),
                                             builder.GetParameters());
#endif


            /*
             * IDbCommand command = GetCommand(FlightsQuery);
             * using(new ConnectionManager(command.Connection))
             * {
             *  SetFlightQueryParameters(command, departureDate, origin.Id, destination.Id);
             *  using (SqlDataReader reader = (SqlDataReader) command.ExecuteReader())
             *  {
             *      while(reader.Read())
             *      {
             *          int flightId = reader.GetInt32(0);
             *          string flightNumber = reader.GetString(1);
             *          Aircraft aircraft = aircraftDao.GetAircraft(reader.GetInt32(2));
             *
             *          //TODO: Load cabins from the database
             *          Cabin[] cabins = aircraft.Cabins;
             *
             *          Flight flight = new Flight(flightId, flightNumber, origin, destination, aircraft, departureDate, cabins);
             *          flights.Add(flight);
             *      }
             *  }
             * }
             */
            return(flights);
        }
 public DbParametersBuilderFixture()
 {
     Builder = new DbParametersBuilder <TestParameters>();
 }