/// <summary>
        /// Creates an object of a Data Access Implementor
        /// </summary>
        /// <param name="type"></param>
        /// <exception cref="InvalidBookingTypeDAOException</exception>
        /// <returns>Returns an interface for one the booking types supplied</returns>
        public IBookingDAOImpl Create(BookingTypes type)
        {
            IBookingDAOImpl bookings = null;

            bookings = s_bookingDAOs[type];

            return(bookings);
        }
Пример #2
0
        /// <summary>
        /// Creates an object of a Data Access Implementor
        /// </summary>
        /// <param name="type"></param>
        /// <exception cref="InvalidBookingTypeDAOException</exception>
        /// <returns>Returns an interface for one the booking types supplied</returns>
        public IBookingDAOImpl Create(BookingTypes type)
        {
            IBookingDAOImpl bookings = null;

            if (type == BookingTypes.Flight)
            {
                bookings = new AirTravelBookingDAOImpl();
            }

            return(bookings);
        }
Пример #3
0
        /// <summary>
        /// Gets the instance of Booking Data Access Object as this a singleton
        /// </summary>
        /// <exception cref="InvalidBookingTypeDAOException">Throws an exception if an invalid booking type</exception>
        /// <returns>Instance of the Booking Data Access Object</returns>
        public static BookingDAO GetInstance(BookingTypes type)
        {
            try
            {
                daoImpl = BookingDAOImplFactory.GetInstance().Create(type);
            }
            catch (InvalidBookingTypeDAOException)
            {
                throw;
            }

            return(instance);
        }
        static BookingDAOImplFactory()
        {
            AppSettingsReader asr           = new AppSettingsReader();
            string            bookingConfig = asr.GetValue("bookingDAOTypes", typeof(string)).ToString();

            string[] tokens = bookingConfig.Split(':');

            for (int i = 0; i < tokens.Length;)
            {
                BookingTypes bt        = (BookingTypes)Convert.ToInt32(tokens[i]);
                string       className = tokens[i + 1];

                Assembly asm           = Assembly.GetExecutingAssembly();
                object   objBookingDAO = asm.CreateInstance(className);

                IBookingDAOImpl bookingDAOImpl = (IBookingDAOImpl)objBookingDAO;

                s_bookingDAOs.Add(bt, bookingDAOImpl);

                i += 2;
            }
        }