/// <summary> /// /// </summary> /// <param name="iteration"></param> /// <param name="dto"></param> public BudgetConfigViewModel(Iteration iteration, BudgetConfigDto dto) { this.PopulateRdl(iteration); this.InitializeCommand(); var budgetconfig = dto.ToBudgetConfig(this.PossibleParameterTypes, this.PossibleSystemLevelParameterTypes, this.usedCategories); this.LoadExistingConfiguration(budgetconfig); }
/// <summary> /// Converts this configuration to dto /// </summary> /// <returns>The <see cref="BudgetConfigDto"/></returns> public BudgetConfigDto ToDto() { var dto = new BudgetConfigDto(); dto.SystemLevel = this.SystemLevelToUse?.Iid; dto.SubSystemLevelEnum = this.SubSystemLevelEnum?.Iid; dto.EquipmentLevelEnum = this.EquipmentLevelEnum?.Iid; dto.NumberOfElement = this.NumberOfElementParameterType?.Iid; dto.SubSystemDefinition = this.SubSystemDefinition.Select( x => new SubSystemDefinitionDto { Categories = x.Categories.Select(c => c.Iid).ToList(), ElementCategories = x.ElementCategories.Select(ec => ec.Iid).ToList() }).ToList(); var massConfig = this.BudgetParameterConfig as MassBudgetParameterConfig; if (massConfig != null) { var parameterConfigDto = new MassParameterConfigDto(); parameterConfigDto.ParameterType = massConfig.DryMassTuple.MainParameterType.Iid; parameterConfigDto.MarginParameterType = massConfig.DryMassTuple.MarginParameterType?.Iid; parameterConfigDto.ExtraContribution = massConfig.ExtraMassContributionConfigurations.Select( x => new ExtraContributionDto { Categories = x.ContributionCategories.Select(c => c.Iid).ToList(), ParameterType = x.MassParameterType.Iid, MarginParameterType = x.MarginParameterType?.Iid }).ToList(); dto.ParameterConfig = parameterConfigDto; } var genericConfig = this.BudgetParameterConfig as GenericBudgetParameterConfig; if (genericConfig != null) { var parameterConfigDto = new GenericParameterConfigDto(); parameterConfigDto.ParameterType = genericConfig.GenericTuple.MainParameterType.Iid; parameterConfigDto.MarginParameterType = genericConfig.GenericTuple.MarginParameterType?.Iid; dto.ParameterConfig = parameterConfigDto; } else { throw new NotImplementedException("only mass budget has been implemented"); } return(dto); }