예제 #1
0
    protected MakeModel MakeFromForm()
    {
        CategoryClass.CatClassID ccId = (CategoryClass.CatClassID)Enum.Parse(typeof(CategoryClass.CatClassID), cmbCatClass.SelectedValue, true);
        Boolean fSea = CategoryClass.IsSeaClass(ccId);

        if (ckComplex.Checked)
        {
            if (fSea)
            {
                ckRetract.Checked = true;
            }
            ckCowlFlaps.Checked    = true;
            ckConstantProp.Checked = true;
        }

        // if we were going to be really anal here, there would be no "complex" field in the database;
        // it would be entirely derived.  but we're not being really anal.
        // Complex is FAR 61.31.
        if ((fSea || ckRetract.Checked) &&
            ckConstantProp.Checked && ckCowlFlaps.Checked)
        {
            ckComplex.Checked = true;
        }

        MakeModel mk = (MakeID == -1) ? new MakeModel() : new MakeModel(MakeID);

        mk.Model                   = txtModel.Text.Trim();
        mk.ModelName               = txtName.Text.Trim();
        mk.TypeName                = txtType.Text.Trim();
        mk.FamilyName              = txtFamilyName.Text.Trim().ToUpper(CultureInfo.InvariantCulture).Replace("-", string.Empty).Replace(" ", string.Empty);
        mk.CategoryClassID         = ccId;
        mk.ManufacturerID          = Convert.ToInt32(cmbManufacturer.SelectedValue, CultureInfo.InvariantCulture);
        mk.IsComplex               = ckComplex.Checked;
        mk.PerformanceType         = HighPerfType;
        mk.IsTailWheel             = ckTailwheel.Checked;
        mk.IsConstantProp          = ckConstantProp.Checked;
        mk.HasFlaps                = ckCowlFlaps.Checked;
        mk.IsRetract               = ckRetract.Checked;
        mk.AvionicsTechnology      = AvionicsTechnology;
        mk.EngineType              = (MakeModel.TurbineLevel)rblTurbineType.SelectedIndex;
        mk.ArmyMDS                 = txtArmyMDS.Text;
        mk.AllowedTypes            = (AllowedAircraftTypes)rblAircraftAllowedTypes.SelectedIndex;
        mk.IsMotorGlider           = (ckTMG.Checked && (ccId == CategoryClass.CatClassID.Glider));
        mk.IsMultiEngineHelicopter = (ckMultiHeli.Checked && (ccId == CategoryClass.CatClassID.Helicopter));
        mk.IsCertifiedSinglePilot  = ckSinglePilot.Checked && mk.EngineType.IsTurbine() && !String.IsNullOrEmpty(mk.TypeName);

        // Sanity check - no complex for a jet
        if (mk.EngineType == MakeModel.TurbineLevel.Jet)
        {
            mk.IsComplex = mk.IsConstantProp = false;
        }

        // these don't get persisted, but help with dupe detection.
        mk.CategoryClassDisplay = cmbCatClass.SelectedItem.Text;
        mk.ManufacturerDisplay  = cmbManufacturer.SelectedItem.Text;

        UpdateRowsForCatClass(mk.CategoryClassID);

        return(mk);
    }
예제 #2
0
    protected void UpdateRowsForCatClass(CategoryClass.CatClassID idCatClass)
    {
        bool fIsGlider = idCatClass == CategoryClass.CatClassID.Glider;

        divTMG.Visible       = fIsGlider;
        divTailwheel.Visible = CategoryClass.IsAirplane(idCatClass) && !CategoryClass.IsSeaClass(idCatClass);
        divMultiHeli.Visible = (idCatClass == CategoryClass.CatClassID.Helicopter);

        bool hasEngine = CategoryClass.HasEngine(idCatClass);

        rowEngineType.Visible    = hasEngine;
        pnlHighPerfBlock.Visible = ckConstantProp.Enabled = ckComplex.Enabled = hasEngine;

        divComplex.Style["display"] = hasEngine || fIsGlider ? "inline-block" : "none";
        if (!hasEngine)
        {
            ckComplex.Checked            = ckConstantProp.Checked = ckCowlFlaps.Checked = ckRetract.Checked = false;
            rblTurbineType.SelectedIndex = 0;
        }

        bool fIsLegacyEligible = (idCatClass == CategoryClass.CatClassID.AMEL || idCatClass == CategoryClass.CatClassID.AMES || idCatClass == CategoryClass.CatClassID.Helicopter);

        pnlLegacyHighPerf.Style["display"] = fIsLegacyEligible ? "inline" : "none";
        if (ckLegacyHighPerf.Checked && !fIsLegacyEligible)
        {
            HighPerfType = MakeModel.HighPerfType.NotHighPerf;
        }
    }