/// <summary> /// Executes the <see cref="OkCommand"/> /// </summary> private void ExecuteOkCommand() { var subSysDefinitions = new List <SubSystemDefinition>(); foreach (var ssDef in this.SubSystemDefinitions) { var subSysCat = new SubSystemDefinition(ssDef.SubSystemDefinitions.SelectedCategories, ssDef.SubSystemElementDefinition.SelectedCategories); if (subSysDefinitions.Contains(subSysCat)) { continue; } subSysDefinitions.Add(subSysCat); } BudgetParameterConfigBase parameterConfig; switch (this.SelectedBudgetKind) { case BudgetKind.Mass: var massBudgetVm = (MassBudgetParameterConfigViewModel)this.BudgetParameterConfig; var drymassConfig = new BudgetParameterMarginPair(massBudgetVm.DryMassConfig.SelectedParameterType, massBudgetVm.DryMassConfig.SelectedMarginParameterType); var extraConf = new List <ExtraMassContributionConfiguration>(); foreach (var extraMassContributionConfigurationViewModel in massBudgetVm.ExtraMassContributions) { extraConf.Add(new ExtraMassContributionConfiguration(extraMassContributionConfigurationViewModel.SelectedCategories, extraMassContributionConfigurationViewModel.SelectedParameter, extraMassContributionConfigurationViewModel.SelectedMarginParameter)); } parameterConfig = new MassBudgetParameterConfig(drymassConfig, extraConf); break; case BudgetKind.Generic: var costBudgetVm = (GenericBudgetParameterConfigViewModel)this.BudgetParameterConfig; parameterConfig = new GenericBudgetParameterConfig(new BudgetParameterMarginPair(costBudgetVm.GenericConfig.SelectedParameterType, costBudgetVm.GenericConfig.SelectedMarginParameterType)); break; default: throw new NotImplementedException($"Case {this.SelectedBudgetKind} not implemented"); } var config = new BudgetConfig(this.SelectedElements, subSysDefinitions, parameterConfig, this.NumberOfElement, this.SystemLevel, this.SelectedSubSystemEnum, this.SelectedEquipmentEnum); this.DialogResult = new BudgetConfigDialogResult(true, config); }
/// <summary> /// Initializes a new instace of the <see cref="MassBudgetParameterConfig"/> class /// </summary> /// <param name="dryMass">The dry mass configuration</param> /// <param name="extraContributionConfig">all extra mass contributions</param> public MassBudgetParameterConfig(BudgetParameterMarginPair dryMass, IReadOnlyList <ExtraMassContributionConfiguration> extraContributionConfig) { this.DryMassTuple = dryMass; this.ExtraMassContributionConfigurations = extraContributionConfig; }
/// <summary> /// Initializes a new instace of the <see cref="PowerBudgetParameterConfig"/> class /// </summary> /// <param name="power">The power parameter configuration</param> public PowerBudgetParameterConfig(BudgetParameterMarginPair power) { this.PowerTuple = power; }
/// <summary> /// Initializes a new instance of the <see cref="GenericBudgetParameterConfig"/> class /// </summary> /// <param name="generic">The <see cref="BudgetParameterMarginPair"/> for the cost</param> public GenericBudgetParameterConfig(BudgetParameterMarginPair generic) { this.GenericTuple = generic; }