Exemplo n.º 1
0
        void AddLandingCurrency(Section section, List <Aircraft> list, AircraftClassification @class, bool night, bool tailDragger)
        {
            string   caption       = string.Format("{0} Current{1}", night ? "Night" : "Day", tailDragger ? " (TailDragger)" : "");
            DateTime oldestLanding = DateTime.Now;
            int      landings      = 0;

            foreach (var flight in LogBook.GetFlightsForPassengerCurrencyRequirements(list, night))
            {
                landings += flight.NightLandings;

                if (!night)
                {
                    landings += flight.DayLandings;
                }

                oldestLanding = flight.Date;

                if (landings >= 3)
                {
                    section.Add(new CurrencyElement(caption, oldestLanding.AddDays(90)));
                    return;
                }
            }

            // currency is out of date
            section.Add(new CurrencyElement(caption, DateTime.Now));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets a list of all of the aircraft of the specified category.
        /// </summary>
        /// <returns>
        /// A list of all of the aircraft of the specified category
        /// </returns>
        /// <param name='category'>
        /// The category of aircraft requested.
        /// </param>
        public static List <Aircraft> GetAircraft(AircraftCategory category)
        {
            AircraftClassification firstClass = (AircraftClassification)(int)category;
            AircraftClassification lastClass  = firstClass + Aircraft.CategoryStep;

            return(sqlitedb.Query <Aircraft> ("select * from Aircraft where Classification between ? and ?",
                                              firstClass, lastClass));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets a list of aircraft of the specified classification.
        /// </summary>
        /// <returns>
        /// A list of aircraft.
        /// </returns>
        /// <param name='classification'>
        /// The classification of aircraft requested.
        /// </param>
        /// <param name='includeSimulators'>
        /// Specifies whether or not simulators should be included.
        /// </param>
        public static List <Aircraft> GetAircraft(AircraftClassification classification, bool includeSimulators)
        {
            if (includeSimulators)
            {
                return(GetAircraft(classification));
            }

            return(sqlitedb.Query <Aircraft> ("select * from Aircraft where Classification = ? and IsSimulator = ?",
                                              classification, false));
        }
Exemplo n.º 4
0
        void LoadDayAndNightCurrency()
        {
            // Day/Night currency is per-AircraftClassification and TailDragger vs not.
            foreach (var value in Enum.GetValues(typeof(AircraftClassification)))
            {
                AircraftClassification @class = (AircraftClassification)value;

                List <Aircraft> list = LogBook.GetAircraft(@class, false);
                if (list == null || list.Count == 0)
                {
                    continue;
                }

                AircraftCategory category = Aircraft.GetCategoryFromClass(@class);
                Section          section;
                string           caption;

                if (category == AircraftCategory.Airplane)
                {
                    caption = string.Format("{0} {1}", category.ToHumanReadableName(), @class.ToHumanReadableName());
                }
                else
                {
                    caption = @class.ToHumanReadableName();
                }

                section = new Section(caption);

                // Only Airplanes can be tail-draggers
                if (category == AircraftCategory.Airplane)
                {
                    List <Aircraft> taildraggers = new List <Aircraft> ();
                    foreach (var aircraft in list)
                    {
                        if (aircraft.IsTailDragger)
                        {
                            taildraggers.Add(aircraft);
                        }
                    }

                    if (taildraggers.Count > 0)
                    {
                        AddLandingCurrency(section, taildraggers, @class, false, true);
                        AddLandingCurrency(section, taildraggers, @class, true, true);
                    }
                }

                AddLandingCurrency(section, list, @class, false, false);
                AddLandingCurrency(section, list, @class, true, false);

                Root.Add(section);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Gets a list of all of the aircraft of the specified category.
        /// </summary>
        /// <returns>
        /// A list of all of the aircraft of the specified category
        /// </returns>
        /// <param name='category'>
        /// The category of aircraft requested.
        /// </param>
        /// <param name='includeSimulators'>
        /// Specifies whether or not simulators should be included.
        /// </param>
        public static List <Aircraft> GetAircraft(AircraftCategory category, bool includeSimulators)
        {
            if (includeSimulators)
            {
                return(GetAircraft(category));
            }

            AircraftClassification firstClass = (AircraftClassification)(int)category;
            AircraftClassification lastClass  = firstClass + Aircraft.CategoryStep;

            return(sqlitedb.Query <Aircraft> ("select * from Aircraft where Classification between ? and ? and IsSimulator = ?",
                                              firstClass, lastClass, false));
        }
Exemplo n.º 6
0
        void AddLandingCurrency(Section section, List<Aircraft> list, AircraftClassification @class, bool night, bool tailDragger)
        {
            string caption = string.Format ("{0} Current{1}", night ? "Night" : "Day", tailDragger ? " (TailDragger)" : "");
            DateTime oldestLanding = DateTime.Now;
            int landings = 0;

            foreach (var flight in LogBook.GetFlightsForPassengerCurrencyRequirements (list, night)) {
                landings += flight.NightLandings;

                if (!night)
                    landings += flight.DayLandings;

                oldestLanding = flight.Date;

                if (landings >= 3) {
                    section.Add (new CurrencyElement (caption, oldestLanding.AddDays (90)));
                    return;
                }
            }

            // currency is out of date
            section.Add (new CurrencyElement (caption, DateTime.Now));
        }
Exemplo n.º 7
0
 static int ClassificationToIndex(AircraftClassification classification)
 {
     return(((int)classification) % Aircraft.CategoryStep);
 }
Exemplo n.º 8
0
        /// <summary>
        /// Gets a list of aircraft of the specified classification.
        /// </summary>
        /// <returns>
        /// A list of aircraft.
        /// </returns>
        /// <param name='classification'>
        /// The classification of aircraft requested.
        /// </param>
        /// <param name='includeSimulators'>
        /// Specifies whether or not simulators should be included.
        /// </param>
        public static List<Aircraft> GetAircraft(AircraftClassification classification, bool includeSimulators)
        {
            if (includeSimulators)
                return GetAircraft (classification);

            return sqlitedb.Query<Aircraft> ("select * from Aircraft where Classification = ? and IsSimulator = ?",
                classification, false);
        }
Exemplo n.º 9
0
 /// <summary>
 /// Gets a list of aircraft of the specified classification.
 /// </summary>
 /// <returns>
 /// A list of aircraft.
 /// </returns>
 /// <param name='classification'>
 /// The classification of aircraft requested.
 /// </param>
 public static List<Aircraft> GetAircraft(AircraftClassification classification)
 {
     return sqlitedb.Query<Aircraft> ("select * from Aircraft where Classification = ?", classification);
 }
Exemplo n.º 10
0
 /// <summary>
 /// Gets a list of aircraft of the specified classification.
 /// </summary>
 /// <returns>
 /// A list of aircraft.
 /// </returns>
 /// <param name='classification'>
 /// The classification of aircraft requested.
 /// </param>
 public static List <Aircraft> GetAircraft(AircraftClassification classification)
 {
     return(sqlitedb.Query <Aircraft> ("select * from Aircraft where Classification = ?", classification));
 }
 int ClassificationToIndex(AircraftClassification classification)
 {
     return ((int) classification) % Aircraft.CategoryStep;
 }
Exemplo n.º 12
0
 /// <summary>
 /// Gets the category from the specified classification.
 /// </summary>
 /// <returns>
 /// The appropriate category for the specified classification.
 /// </returns>
 /// <param name='classification'>
 /// An AircraftClassification.
 /// </param>
 public static AircraftCategory GetCategoryFromClass(AircraftClassification classification)
 {
     return((AircraftCategory)((((int)classification) / CategoryStep) * CategoryStep));
 }
Exemplo n.º 13
0
 /// <summary>
 /// Gets the category from the specified classification.
 /// </summary>
 /// <returns>
 /// The appropriate category for the specified classification.
 /// </returns>
 /// <param name='classification'>
 /// An AircraftClassification.
 /// </param>
 public static AircraftCategory GetCategoryFromClass(AircraftClassification classification)
 {
     return (AircraftCategory) ((((int) classification) / CategoryStep) * CategoryStep);
 }