Beispiel #1
0
        public static void ExportAsTemplate(AdminShell.Submodel sm, string fn)
        {
            // access
            if (fn == null || sm == null || sm.submodelElements == null)
            {
                return;
            }

            // make submodel template
            var templateArr = new List <FormDescSubmodel>();
            var tsm         = new FormDescSubmodel(
                "Submodel",
                sm.semanticId?.GetAsExactlyOneKey(),
                sm.idShort,
                "");

            tsm.SubmodelElements = new FormDescListOfElement();
            templateArr.Add(tsm);

            // ok, export all SubmodelElems
            RecurseExportAsTemplate(sm.submodelElements, tsm.SubmodelElements);

            // write
            var settings = AasxPluginOptionSerialization.GetDefaultJsonSettings(new[] { typeof(FormDescBase) });

            settings.Formatting = Newtonsoft.Json.Formatting.Indented;
            var json = Newtonsoft.Json.JsonConvert.SerializeObject(templateArr, templateArr.GetType(), settings);

            File.WriteAllText(fn, json);
        }
Beispiel #2
0
        public static void ExportAsGenericFormsOptions(
            AdminShell.AdministrationShellEnv env, AdminShell.Submodel sm, string fn)
        {
            // access
            if (fn == null || env == null || sm == null || sm.submodelElements == null)
            {
                return;
            }

            // make submodel template
            var tsm = new FormDescSubmodel(
                "Submodel",
                sm.semanticId?.GetAsExactlyOneKey(),
                sm.idShort,
                "");

            tsm.SubmodelElements = new FormDescListOfElement();

            // will collect a list of CDs
            var cds = new AdminShell.ListOfConceptDescriptions();

            // ok, export all SubmodelElems into tsm
            RecurseExportAsTemplate(sm.submodelElements, tsm.SubmodelElements, env, cds);

            // fill out record
            var rec = new ExportAsGenericFormsOptions_OptionsRecord();

            rec.FormTag = "TBD";
            var q = sm.qualifiers?.FindType("FormTag");

            if (q != null)
            {
                rec.FormTag = "" + q.value;
            }

            rec.FormTitle = "TBD/" + sm.idShort;
            q             = sm.qualifiers?.FindType("FormTitle");
            if (q != null)
            {
                rec.FormTitle = "" + q.value;
            }

            rec.FormSubmodel        = tsm;
            rec.ConceptDescriptions = cds;

            // fill out overall data
            var overall = new ExportAsGenericFormsOptions_OptionsOverall();

            overall.Records.Add(rec);

            // write
            var settings = AasxPluginOptionSerialization.GetDefaultJsonSettings(new[] { typeof(FormDescBase) });

            settings.Formatting = Newtonsoft.Json.Formatting.Indented;
            var json = Newtonsoft.Json.JsonConvert.SerializeObject(overall, overall.GetType(), settings);

            File.WriteAllText(fn, json);
        }
        protected JsonSerializerSettings GetSerializerSettings()
        {
            // need special settings (to handle different typs of child classes of PackageContainer)
            var settings = AasxPluginOptionSerialization.GetDefaultJsonSettings(
                new[] { typeof(PackageContainerListBase), typeof(PackageContainerLocalFile),
                        typeof(PackageContainerNetworkHttpFile) });

            return(settings);
        }
Beispiel #4
0
        public static void ExportAsTemplate(AdminShellPackageEnv package, string fn)
        {
            // access
            if (fn == null || package == null || package.AasEnv == null)
            {
                return;
            }

            // build templates
            var templateArr = new List <FormDescSubmodel>();

            foreach (var aas in package.AasEnv.AdministrationShells)
            {
                foreach (var smref in aas.submodelRefs)
                {
                    // get Submodel
                    var sm = package.AasEnv.FindSubmodel(smref);
                    if (sm == null)
                    {
                        continue;
                    }

                    // make submodel template
                    var tsm = new FormDescSubmodel(
                        "Submodel",
                        sm.GetSemanticKey(),
                        sm.idShort,
                        "");
                    tsm.SubmodelElements = new FormDescListOfElement();
                    templateArr.Add(tsm);

                    // ok, export all SubmodelElems
                    RecurseExportAsTemplate(sm.submodelElements, tsm.SubmodelElements);
                }
            }

            // write
            var settings = AasxPluginOptionSerialization.GetDefaultJsonSettings(new[] { typeof(FormDescBase) });

            settings.Formatting = Newtonsoft.Json.Formatting.Indented;
            var json = Newtonsoft.Json.JsonConvert.SerializeObject(templateArr, templateArr.GetType(), settings);

            File.WriteAllText(fn, json);
        }
Beispiel #5
0
        public bool LoadFromLocalFile(string fn)
        {
            // from file
            if (!File.Exists(fn))
            {
                return(false);
            }

            // need special settings (to handle different typs of child classes of PackageContainer)
            var settings = AasxPluginOptionSerialization.GetDefaultJsonSettings(
                new[] { typeof(PackageContainerListBase), typeof(PackageContainerLocalFile),
                        typeof(PackageContainerNetworkHttpFile) });

            var init = File.ReadAllText(fn);

            JsonConvert.PopulateObject(init, this, settings);

            // return
            return(true);
        }