示例#1
0
        protected void Init()
        {
            string szFar = ResolvedFAR("(1)");

            miMinTime        = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.SportMinTime, minTime, CategoryName), szFar, string.Empty, MilestoneItem.MilestoneType.Time, minTime);
            miMinInstruction = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.SportMinInstruction, minInstruction, CategoryName), szFar, string.Empty, MilestoneItem.MilestoneType.Time, minInstruction);
            miMinSolo        = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.SportMinSolo, minSolo, CategoryName), szFar, string.Empty, MilestoneItem.MilestoneType.Time, minSolo);

            miMinCrossCountry = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.SportMinXC, CategoryName), ResolvedFAR("(1)(i)"), string.Empty, MilestoneItem.MilestoneType.Time, 2.0M);
            miMinLandings     = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.SportMinLandings, CategoryName), ResolvedFAR("(1)(ii)"), Resources.MilestoneProgress.SportPilotLandingNote, MilestoneItem.MilestoneType.Count, 10);
            miSoloXCFlight    = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.SportSoloXCFlight, CategoryName, MinXCDistance), ResolvedFAR("(1)(iii)"), string.Empty, MilestoneItem.MilestoneType.AchieveOnce, 1);
            miTestPrep        = new MilestoneItemDecayable(Resources.MilestoneProgress.SportTestPrepTime, ResolvedFAR("(1)(iv)"), Branding.ReBrand(Resources.MilestoneProgress.NoteTestPrep), MilestoneItem.MilestoneType.Time, 2.0M, 2);
        }
示例#2
0
        /// <summary>
        /// Initializes an instrument rating object
        /// </summary>
        /// <param name="szTitle">Title</param>
        /// <param name="szBaseFAR">Base FAR</param>
        /// <param name="ratingSought">Specific rating being sought</param>
        protected virtual void Init(string szTitle, string szBaseFAR, RatingType ratingSought, string farLink)
        {
            Title        = szTitle;
            BaseFAR      = szBaseFAR;
            FARLink      = farLink;
            RatingSought = ratingSought;

            FTDTimeRemaining = MaxFTDTime;

            string szAircraftCategory;

            switch (RatingSought)
            {
            case RatingType.InstrumentAirplane:
                szAircraftCategory = Resources.MilestoneProgress.ratingAirplane;
                break;

            case RatingType.InstrumentHelicopter:
                szAircraftCategory = Resources.MilestoneProgress.ratingHelicopter;
                break;

            case RatingType.InstrumentPoweredLift:
                szAircraftCategory = Resources.MilestoneProgress.ratingPoweredLift;
                break;

            default:
                throw new MyFlightbookException(String.Format(CultureInfo.InvariantCulture, "Unallowed rating for 61.65: {0}", RatingSought.ToString()));
            }

            // 61.65(def)(1)
            miMinXCTime         = new MilestoneItem(Resources.MilestoneProgress.MinInstrumentPICXC, ResolvedFAR("(1)"), Resources.MilestoneProgress.NoteXCTime, MilestoneItem.MilestoneType.Time, 50.0M);
            miMinTimeInCategory = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.MinInstrumentPICInCategory, szAircraftCategory), ResolvedFAR("(1)"), String.Empty, MilestoneItem.MilestoneType.Time, 10.0M);

            // 61.65(def)(2) - total instrument time
            miMinIMCTime = new MilestoneItem(Resources.MilestoneProgress.MinInstrumentTime, ResolvedFAR("(2)"), Branding.ReBrand(Resources.MilestoneProgress.NoteInstrumentTime), MilestoneItem.MilestoneType.Time, 40.0M);

            // 61.65(def)(2) - Instrument training
            miInstrumentTraining = new MilestoneItem(Resources.MilestoneProgress.MinInstrumentTraining, ResolvedFAR("(2)"), Branding.ReBrand(Resources.MilestoneProgress.MinInstrumentTrainingNote), MilestoneItem.MilestoneType.Time, 15.0M);

            // 61.65(def)(2)(i) - recent test prep
            miMinIMCTestPrep = new MilestoneItemDecayable(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.MinInstrumentTestPrep, szAircraftCategory), ResolvedFAR("(2)(i)"), Branding.ReBrand(Resources.MilestoneProgress.NoteTestPrep), MilestoneItem.MilestoneType.Time, 3.0M, 2);

            // 61.65(def)(2)(ii) - cross-country
            miIMCXC = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.MinInstrumentXC, szAircraftCategory, MinXCDistance), ResolvedFAR("(2)(ii)"), Branding.ReBrand(Resources.MilestoneProgress.NoteInstrumentXC), MilestoneItem.MilestoneType.AchieveOnce, 1.0M);
        }
示例#3
0
        public SportPilotGlider()
            : base()
        {
            // Basic MilestoneProgress stuff
            Title        = Resources.MilestoneProgress.TitleSportGlider;
            CatClassID   = CategoryClass.CatClassID.Glider;
            BaseFAR      = "61.313(b, c)";
            RatingSought = RatingType.SportGlider;

            // Parameters for SportBasePilot
            CategoryName = Resources.MilestoneProgress.SportGliderCategory;

            // Unique to this class
            TotalHeavierThanAir       = 0.0M;
            QualifiesByHeavierThanAir = false;
            string szFar = ResolvedFAR("(1)");

            miMinTime            = new MilestoneItem(Resources.MilestoneProgress.SportMinTimeGlider, szFar, string.Empty, MilestoneItem.MilestoneType.Time, 10);
            miMinTrainingFlights = new MilestoneItem(Resources.MilestoneProgress.SportMinFlightsGlider, szFar, string.Empty, MilestoneItem.MilestoneType.Count, 10);
            miMinSolo            = new MilestoneItem(Resources.MilestoneProgress.SportMinSoloGlider, szFar, string.Empty, MilestoneItem.MilestoneType.Time, 2);

            miMinSoloFlights = new MilestoneItem(Resources.MilestoneProgress.SportMinSoloLandings, ResolvedFAR("(1)(i)"), Resources.MilestoneProgress.SportMinLandingsNote, MilestoneItem.MilestoneType.Count, 5);
            miTestPrep       = new MilestoneItemDecayable(Resources.MilestoneProgress.SportMinTraining, ResolvedFAR("(1)(ii)"), Resources.MilestoneProgress.NoteTestPrep, MilestoneItem.MilestoneType.Count, 3, 2);
        }
示例#4
0
        protected void Init(CategoryClass.CatClassID ccid)
        {
            CategoryClass cc = CategoryClass.CategoryClassFromID(CatClassID = ccid);

            Title        = String.Format(CultureInfo.CurrentCulture, "{0} - {1}", Resources.MilestoneProgress.Title6199, cc.CatClass);
            BaseFAR      = "61.99";
            FARLink      = "https://www.law.cornell.edu/cfr/text/14/61.99";
            RatingSought = RatingType.RecreationalPilot;

            // 61.99 overall
            miMinTime = new MilestoneItem(Resources.MilestoneProgress.RecreationalMinTime, ResolvedFAR(string.Empty), string.Empty, MilestoneItem.MilestoneType.Time, 30.0M);

            // 61.99(a) - 15 hours of dual
            miMinInstruction = new MilestoneItem(Resources.MilestoneProgress.RecreationalMinTraining, ResolvedFAR("(a)"), String.Empty, MilestoneItem.MilestoneType.Time, 15.0M);

            // 61.99(a)(1)(i) - 2 hours of flight training in 25nm flights with at least 4 landings
            miXCFlight = new MilestoneItem(Resources.MilestoneProgress.RecreationalMinXC, ResolvedFAR("(a)(1)(i)"), Resources.MilestoneProgress.RecreationalMinXCNote, MilestoneItem.MilestoneType.Time, 2.0M);

            // 61.99(a)(1)(ii) - 3 hours of flight training within preceding 2 months.
            miTestPrep = new MilestoneItemDecayable(Resources.MilestoneProgress.RecreationTestPrep, ResolvedFAR("(a)(1)(ii)"), Branding.ReBrand(Resources.MilestoneProgress.NoteTestPrep), MilestoneItem.MilestoneType.Time, 3.0M, 2);

            // 61.99(a)(2) - 3 hours of solo time
            miMinSolo = new MilestoneItem(Resources.MilestoneProgress.RecreationalMinSolo, ResolvedFAR("(a)(2)"), Resources.MilestoneProgress.NoteSoloTime, MilestoneItem.MilestoneType.Time, 3.0M);
        }