示例#1
0
        public ATPCanadaHelicopter() : base(Resources.MilestoneProgress.TitleCAATPHelicopter,
                                            CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.Helicopter).Category,
                                            CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.ASEL).Category,
                                            "421.35(4)",
                                            RatingType.ATPHelicopter)
        {
            MinHours                         = 1000;
            MinInCategory                    = 600;
            MinXC                            = 200;
            MinPICInCategory                 = 250;
            MaxPICUSInCategory               = 150;
            MinPICXC                         = 100;
            MinPICXCNight                    = 0;
            MinNight                         = 50;
            MinNightInCategory               = 15;
            MinXCPICAdditional               = 100;
            MinXCSICPICAdditional            = 200;
            MinInstrument                    = 30;
            MaxSimulator                     = 0;
            MaxInstrumentAlternativeCategory = 15;

            InitMilestones(Resources.MilestoneProgress.CAATPHelicopters, Resources.MilestoneProgress.CAATPAeroplanes);

            miPICXC.FARRef = ResolvedFAR("(c)");
        }
示例#2
0
        public DPEBase(DPEThresholds dpet, CategoryClass.CatClassID ccid, string szFarRef)
        {
            if (dpet == null)
            {
                throw new ArgumentNullException("dpet");
            }
            BaseFAR = "Order 8900.2A";
            string szResolved = ResolvedFAR(szFarRef);

            catClass = CategoryClass.CategoryClassFromID(ccid);
            string szCatClass = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.LocalizedJoinWithSpace, catClass.Category, catClass.Class);

            miPIC                   = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEPICTime, dpet.PIC), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.PIC);
            miPICPastYear           = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEPICTimePastYear, dpet.PICPastYear, catClass.Category), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.PICPastYear);
            miPICCategory           = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEPICCategory, dpet.PICCategory, catClass.Category), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.PICCategory);
            miPICClass              = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEPICClass, dpet.PICClass, szCatClass), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.PICClass);
            miPICNight              = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEPICNight, dpet.PICNight), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.PICNight);
            miCFICategory           = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPECFICategory, dpet.CFICategory, catClass.Category), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.CFICategory);
            miCFIClass              = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPECFIClass, dpet.CFIClass, szCatClass), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.CFIClass);
            miPICFlightsInPriorYear = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEFlightsPastYear, dpet.PICFlightsInClassPriorYear, catClass.Category), szResolved, string.Empty, MilestoneItem.MilestoneType.Count, dpet.PICFlightsInClassPriorYear);
            miPICComplexTime        = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEComplex, dpet.PICComplexTime), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.PICComplexTime);
            miPICInstrumentTime     = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEInstrument, dpet.PICInstrumentTime), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.PICInstrumentTime);
            miCFIITime              = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEInstrumentInstruction, dpet.CFIITime), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.CFIITime);
            miCFIITimeInCategory    = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.DPEInstrumentInstructionInCategory, dpet.CFIITimeInCategory, catClass.Category), szResolved, string.Empty, MilestoneItem.MilestoneType.Time, dpet.CFIITimeInCategory);
        }
示例#3
0
 public EASASPLInstructorCurrency(string szName) : base(szName)
 {
     Query = new FlightQuery()
     {
         DateRange = FlightQuery.DateRanges.Custom, DateMin = DateTime.Now.Date.AddYears(-3), HasCFI = true, HasLandings = true, FlightCharacteristicsConjunction = GroupConjunction.Any
     };
     Query.AddCatClass(CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.Glider));
 }
示例#4
0
 public EASATMGCurrency(string szName) : base(szName)
 {
     Query = new FlightQuery()
     {
         DateRange = FlightQuery.DateRanges.Custom, DateMin = DateTime.Now.AddYears(-2), IsMotorglider = true
     };
     Query.AddCatClass(CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.Glider));
 }
示例#5
0
 public CatClassTotal(string catClass, CategoryClass.CatClassID ccid)
 {
     Total           = 0.0M;
     CatClassDisplay = catClass;
     CCId            = ccid;
     CatClass        = CategoryClass.CategoryClassFromID(ccid);
     Count           = 0;
     TotalLandings   = TotalFSDayLandings = TotalFSNightLandings = TotalApproaches = 0;
 }
示例#6
0
 public ATPCanadaAirplane() : base(Resources.MilestoneProgress.TitleCAATPAirplane,
                                   CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.ASEL).Category,
                                   CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.Helicopter).Category,
                                   "421.34(4)",
                                   RatingType.ATPAirplane)
 {
     MinHours                         = 1500;
     MinInCategory                    = 900;
     MinXC                            = 0;
     MinPICInCategory                 = 250;
     MaxPICUSInCategory               = 100;
     MinPICXC                         = 100;
     MinPICXCNight                    = 25;
     MinNight                         = 100;
     MinNightInCategory               = 30;
     MinXCPICAdditional               = 100;
     MinXCSICPICAdditional            = 200;
     MinInstrument                    = 75;
     MaxSimulator                     = 25;
     MaxInstrumentAlternativeCategory = 35;
     InitMilestones(Resources.MilestoneProgress.CAATPAeroplanes, Resources.MilestoneProgress.CAATPHelicopters);
 }
示例#7
0
        protected ATPAirplane(string title, CategoryClass.CatClassID ccid, decimal minTime = 1500, decimal minXCTime = 500, bool fCanCreditSICAndFlightEngineer = false)
        {
            Title = title;
            requiredCatClassID            = ccid;
            BaseFAR                       = "61.159";
            RatingSought                  = RatingType.ATPAirplane;
            ATPTotalTime                  = minTime;
            ATPMinXC                      = minXCTime;
            CanCreditSICAndFlightEngineer = fCanCreditSICAndFlightEngineer;
            CategoryClass cc = CategoryClass.CategoryClassFromID(ccid);

            miTotal             = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.ATPMinTime, ATPTotalTime), ResolvedFAR("(a)"), fCanCreditSICAndFlightEngineer ? Branding.ReBrand(Resources.MilestoneProgress.ATPTotalTimeSubstitutionNote) : string.Empty, MilestoneItem.MilestoneType.Time, ATPTotalTime);
            miMinXCTime         = new MilestoneItem(Resources.MilestoneProgress.ATPMinXCTime, ResolvedFAR("(a)(1)"), string.Empty, MilestoneItem.MilestoneType.Time, ATPMinXC);
            miMinNightTime      = new MilestoneItem(Resources.MilestoneProgress.ATPMinNightTime, ResolvedFAR("(a)(2)"), Resources.MilestoneProgress.ATPAirplaneNightLandingsNote, MilestoneItem.MilestoneType.Time, ATPMinNight);
            miMinTimeInClass    = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.ATPTimeInClass, ATPMinTimeInClass, cc.Class), ResolvedFAR("(a)(3)"), Branding.ReBrand(Resources.MilestoneProgress.ATPAirplaneClassSimulatorNote), MilestoneItem.MilestoneType.Time, ATPMinTimeInClass);
            miMinInstrumentTime = new MilestoneItem(Resources.MilestoneProgress.ATPInstrumentTime, ResolvedFAR("(a)(4)"), Resources.MilestoneProgress.ATPAirplaneSimulatorNote, MilestoneItem.MilestoneType.Time, ATPMinIFR);
            miMinPIC            = new MilestoneItem(Resources.MilestoneProgress.ATPPICTime, ResolvedFAR("(a)(5)"), Resources.MilestoneProgress.ATPPICTimeNote, MilestoneItem.MilestoneType.Time, ATPMinPIC);
            miMinPICXC          = new MilestoneItem(Resources.MilestoneProgress.ATPXCPICTime, ResolvedFAR("(a)(5)(i)"), Resources.MilestoneProgress.ATPPICTimeNote, MilestoneItem.MilestoneType.Time, ATPMinPICXC);
            miMinPICNight       = new MilestoneItem(Resources.MilestoneProgress.ATPNightPICTime, ResolvedFAR("(a)(5)(ii)"), Resources.MilestoneProgress.ATPPICTimeNote, MilestoneItem.MilestoneType.Time, ATPMinPICNight);
            miNightTO           = new MilestoneItem(string.Empty, ResolvedFAR("(b)"), string.Empty, MilestoneItem.MilestoneType.Count, ATPMinNightTakeoffs);
            miNightLanding      = new MilestoneItem(string.Empty, ResolvedFAR("(b)"), string.Empty, MilestoneItem.MilestoneType.Count, ATPMinNightLandings);
        }
示例#8
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";
            RatingSought = RatingType.RecreationalPilot;

            // 61.99 overall
            miMinTime = new MilestoneItem(Resources.MilestoneProgress.RecreationalMinTime, BaseFAR, 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 MilestoneItem(Resources.MilestoneProgress.RecreationTestPrep, ResolvedFAR("(a)(1)(ii)"), Branding.ReBrand(Resources.MilestoneProgress.NoteTestPrep), MilestoneItem.MilestoneType.Time, 3.0M);

            // 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);
        }
示例#9
0
 public ATPCanadaAirplane() : base(Resources.MilestoneProgress.TitleCAATPAirplane,
                                   CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.ASEL).Category,
                                   CategoryClass.CategoryClassFromID(CategoryClass.CatClassID.Helicopter).Category,
                                   "421.34(4)",
                                   RatingType.ATPAirplane,
                                   "https://tc.canada.ca/en/corporate-services/acts-regulations/list-regulations/canadian-aviation-regulations-sor-96-433/standards/standard-421-flight-crew-permits-licences-ratings-canadian-aviation-regulations-cars#421_34")
 {
     MinHours                         = 1500;
     MinInCategory                    = 900;
     MinXC                            = 0;
     MinPICInCategory                 = 250;
     MaxPICUSInCategory               = 100;
     MinPICXC                         = 100;
     MinPICXCNight                    = 25;
     MinNight                         = 100;
     MinNightInCategory               = 30;
     MinXCPICAdditional               = 100;
     MinXCSICPICAdditional            = 200;
     MinInstrument                    = 75;
     MaxSimulator                     = 25;
     MaxInstrumentAlternativeCategory = 35;
     InitMilestones(Resources.MilestoneProgress.CAATPAeroplanes, Resources.MilestoneProgress.CAATPHelicopters);
 }
示例#10
0
        protected CFIBase(string title, CategoryClass.CatClassID ccid, RatingType rt)
        {
            Title = title;
            requiredCatClassID = ccid;
            BaseFAR            = "61.183";
            RatingSought       = rt;
            FARLink            = "https://www.law.cornell.edu/cfr/text/14/61.183";

            miPIC = new MilestoneItem(String.Format(CultureInfo.CurrentCulture, Resources.MilestoneProgress.CFITimeInCategoryClass, CFIMinTime, CategoryClass.CategoryClassFromID(ccid).CatClass), ResolvedFAR("(j)"), string.Empty, MilestoneItem.MilestoneType.Time, CFIMinTime);
        }