示例#1
0
        public void ConvertDefaults(List <DefaultAssignment> defaults)
        {
            ProductModel pm = ModelWorkspace.CreateFromFile(pmxFile).ProductModel;
            var          pmProductModelStructure = pm.ProductModelStructure;

            foreach (var defaultAssignment in defaults)
            {
                //var characteristic = _parseUtils.FindSelectionCriteriaCharacteristic( defaultAssignment.HierarchyElement );
                //var precondition = _parseUtils.GeneratePrecondition( characteristic, defaultAssignment.HierarchyElement );

                var model   = defaultAssignment.Model;
                var coutry  = defaultAssignment.Country;
                var variant = defaultAssignment.Variant;

                var defaultModel = new LogicModel();
                defaultModel.AddRule("", "", ExprBld.IfThen(
                                         (ExprBld.Variables["Model"] == model)
                                         .And(ExprBld.Variables["coutry"] == coutry)
                                         .And(ExprBld.Variables["variant"] == variant),
                                         ExprBld.Variables[defaultAssignment.Assignment.Characteristic]) ==
                                     defaultAssignment.Assignment.Value);
                var compiler          = new Core.Compile.Compilation.Compiler(defaultModel);
                var defaultSolveData  = compiler.CompileNddSolve();
                var scopedDefaultData = new ScopedDefaultData(new[] { "model", "country", "variant" }, defaultSolveData);

                var packagedModelSerializer = new PackagedModelSerializer();
                var packagedModel           = packagedModelSerializer.LoadAsync(cameronPackage).Result.CopyAndInclude(scopedDefaultData);
                packagedModelSerializer.SaveAsync(cameronPackage,
                                                  new[] { packagedModel }).Wait();
            }
        }
示例#2
0
        private ProductModel LoadProductModel(string pmxFile)
        {
            var pm = ModelWorkspace.CreateFromFile(pmxFile).ProductModel;
            var variableProperties = pm.PropertyGroup.First(pg => pg.Name == "variables").Properties;
            var showProperty       = variableProperties.FirstOrDefault(p => p.Name.ToLower() == "show");

            if (showProperty == null)
            {
                variableProperties
                .Add(new Property("Show", null, ProductModel.BOOL_TYPENAME));
            }

            return(pm);
        }