From d99ef6599259bc8803b4ff4718cd1b383eb8d975 Mon Sep 17 00:00:00 2001 From: david schoene Date: Mon, 16 Mar 2026 11:13:06 +0100 Subject: [PATCH 1/2] #2385 add parameters to metadata api output in json simplifiy = 1 --- .../BExIS.Xml.Helpers/XmlMetadataConverter.cs | 20 +++ .../Views/Form/_metadataAttributeView.cshtml | 126 +++++++++--------- 2 files changed, 83 insertions(+), 63 deletions(-) diff --git a/Components/XML/BExIS.Xml.Helpers/XmlMetadataConverter.cs b/Components/XML/BExIS.Xml.Helpers/XmlMetadataConverter.cs index f79131a06..285af3531 100644 --- a/Components/XML/BExIS.Xml.Helpers/XmlMetadataConverter.cs +++ b/Components/XML/BExIS.Xml.Helpers/XmlMetadataConverter.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Security.Cryptography; using System.Xml; using System.Xml.Linq; @@ -123,6 +124,7 @@ private JToken _convertPackageUsage(XmlNode node, MetadataPackageUsage usage, bo // add all children nodes JObject complex = new JObject(); setReference(complex, (XmlElement)tCHild, includeEmpty); + setParameters(complex, (XmlElement)tCHild, includeEmpty); for (int i = 0; i < tCHild.ChildNodes.Count; i++) { @@ -217,6 +219,7 @@ private JToken _convertElementUsage(XmlNode node, BaseUsage usage, bool includeE // add all children nodes JObject complex = new JObject(); setReference(complex, (XmlElement)tCHild, includeEmpty); + setParameters(complex, (XmlElement)tCHild, includeEmpty); for (int i = 0; i < tCHild.ChildNodes.Count; i++) { @@ -324,6 +327,7 @@ private JObject addSimple(BaseUsage usage, string valueAsString, XmlElement refe } setReference(simple, reference, includeEmpty); + setParameters(simple, reference, includeEmpty); simple.Add(new JProperty("#text", value)); @@ -351,6 +355,22 @@ private void setReference(JObject target, XmlElement element, bool includeEmpty) } } + private void setParameters(JObject target, XmlElement element, bool includeEmpty) + { + if(element.HasAttributes) + { + List ignore = new List() { "type", "ref", "id", "roleId", "number", "name" }; // system attributes + + foreach (XmlAttribute attr in element.Attributes) + { + if (!ignore.Contains(attr.Name)) + { + target.Add("@" + attr.Name, attr.Value); + } + } + } + } + #endregion XML to JSON #region JSON to XML diff --git a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Views/Form/_metadataAttributeView.cshtml b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Views/Form/_metadataAttributeView.cshtml index 7616ead64..4539cd13a 100644 --- a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Views/Form/_metadataAttributeView.cshtml +++ b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Views/Form/_metadataAttributeView.cshtml @@ -241,89 +241,89 @@ // show info text on top (simple is optional / complex mandatory) if ((@hasSimpleMapping) && Model.PartyMappingExist && Model.MappingSelectionField) { -
If possible, use an entry from autocomplete list.
+
If possible, use an entry from autocomplete list.
} if ((hasComplexMapping) && Model.PartyMappingExist && Model.MappingSelectionField) { -
Use an entry from autocomplete list.
+
Use an entry from autocomplete list.
} - + // add icons to show linked / not linked party entries; hide both by default var notLinkedID = @idInput + "_notLinked"; var linkedID = @idInput + "_linked"; - - + + // show not linked, when on any content, but not linked if ((@hasSimpleMapping || hasComplexMapping) && Model.MappingSelectionField && Model.PartyMappingExist && partyid == "" && Model.Value != null) { - + } // show linked, when a party id is selected else if ((@hasSimpleMapping || hasComplexMapping) && Model.MappingSelectionField && Model.PartyMappingExist && partyid != "" && Model.Value != null) { - + } - - - + + + } else From 90f754c7f6d5451bfce1d386250d7cdf7e2f6575 Mon Sep 17 00:00:00 2001 From: david schoene Date: Tue, 24 Mar 2026 10:16:18 +0100 Subject: [PATCH 2/2] #2417 znetralize templates and use ids instead of full templates --- .../package-lock.json | 30 +++--- .../BExIS.Modules.Dcm.UI.Svelte/package.json | 2 +- .../BExIS.Modules.Dcm.UI.Svelte/src/app.html | 2 +- .../RPM/BExIS.Modules.Rpm.UI.Svelte/README.md | 3 + .../BExIS.Modules.Rpm.UI.Svelte/package.json | 93 ++++++++++--------- .../BExIS.Modules.Rpm.UI.Svelte/src/app.html | 2 +- .../datastructure/structure/Variables.svelte | 5 +- .../structure/variable/Variable.svelte | 10 +- .../src/lib/components/datastructure/types.ts | 2 +- .../Controllers/DataStructureController.cs | 10 +- .../DataStructureCreationModel.cs | 2 + .../Models/VariableModels.cs | 4 +- 12 files changed, 91 insertions(+), 74 deletions(-) diff --git a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package-lock.json b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package-lock.json index 6ed2d49a5..da1642fe5 100644 --- a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package-lock.json +++ b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package-lock.json @@ -11,7 +11,7 @@ "license": "ISC", "dependencies": { "@bexis2/bexis2-core-ui": "0.4.74", - "@bexis2/bexis2-rpm-ui": "0.2.15", + "@bexis2/bexis2-rpm-ui": "0.3.0", "@floating-ui/dom": "1.6.8", "@fortawesome/free-solid-svg-icons": "6.6.0", "@sveltejs/adapter-static": "3.0.2", @@ -124,13 +124,13 @@ } }, "node_modules/@bexis2/bexis2-rpm-ui": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@bexis2/bexis2-rpm-ui/-/bexis2-rpm-ui-0.2.15.tgz", - "integrity": "sha512-vCQK1M2pd7KdGzIP9QpNclFx1Y37ckNjgZbwcHQOmxOtMA+CRe6MEHintKDNlO8lXEWSYv29KDAIVqcdPNsDfA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@bexis2/bexis2-rpm-ui/-/bexis2-rpm-ui-0.3.0.tgz", + "integrity": "sha512-WU3C7GB5OIj3KgqvQj65Bbi5Zmak+omxpJLg0ElyP9ubM2eEKFZj3CIT5GPNGoUmwYe949sKJbUrYhn+aKyTUg==", "hasInstallScript": true, "license": "ISC", "dependencies": { - "@bexis2/bexis2-core-ui": "0.4.60", + "@bexis2/bexis2-core-ui": "0.4.69", "@floating-ui/dom": "1.6.8", "@sveltejs/adapter-static": "3.0.2", "@sveltejs/package": "2.3.2", @@ -140,9 +140,9 @@ } }, "node_modules/@bexis2/bexis2-rpm-ui/node_modules/@bexis2/bexis2-core-ui": { - "version": "0.4.60", - "resolved": "https://registry.npmjs.org/@bexis2/bexis2-core-ui/-/bexis2-core-ui-0.4.60.tgz", - "integrity": "sha512-D/Ytgpzj51uxCu+TEROF4PxmfHE7ONaGDeQINj083dtaalS0l/u3w7kWUIeTn5D8u6oLUg/FywVzqyd0bCXkpA==", + "version": "0.4.69", + "resolved": "https://registry.npmjs.org/@bexis2/bexis2-core-ui/-/bexis2-core-ui-0.4.69.tgz", + "integrity": "sha512-V2MWtTvozYqN+DXLqoQ3W9oNnzdtvCwbk8Oz5TMg093YYfNjreh41FRuMXecN1rDA7ZE6RoYPgQQugNUWDfHWw==", "license": "ISC", "dependencies": { "@codemirror/lang-html": "^6.4.9", @@ -5863,11 +5863,11 @@ } }, "@bexis2/bexis2-rpm-ui": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@bexis2/bexis2-rpm-ui/-/bexis2-rpm-ui-0.2.15.tgz", - "integrity": "sha512-vCQK1M2pd7KdGzIP9QpNclFx1Y37ckNjgZbwcHQOmxOtMA+CRe6MEHintKDNlO8lXEWSYv29KDAIVqcdPNsDfA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@bexis2/bexis2-rpm-ui/-/bexis2-rpm-ui-0.3.0.tgz", + "integrity": "sha512-WU3C7GB5OIj3KgqvQj65Bbi5Zmak+omxpJLg0ElyP9ubM2eEKFZj3CIT5GPNGoUmwYe949sKJbUrYhn+aKyTUg==", "requires": { - "@bexis2/bexis2-core-ui": "0.4.60", + "@bexis2/bexis2-core-ui": "0.4.69", "@floating-ui/dom": "1.6.8", "@sveltejs/adapter-static": "3.0.2", "@sveltejs/package": "2.3.2", @@ -5877,9 +5877,9 @@ }, "dependencies": { "@bexis2/bexis2-core-ui": { - "version": "0.4.60", - "resolved": "https://registry.npmjs.org/@bexis2/bexis2-core-ui/-/bexis2-core-ui-0.4.60.tgz", - "integrity": "sha512-D/Ytgpzj51uxCu+TEROF4PxmfHE7ONaGDeQINj083dtaalS0l/u3w7kWUIeTn5D8u6oLUg/FywVzqyd0bCXkpA==", + "version": "0.4.69", + "resolved": "https://registry.npmjs.org/@bexis2/bexis2-core-ui/-/bexis2-core-ui-0.4.69.tgz", + "integrity": "sha512-V2MWtTvozYqN+DXLqoQ3W9oNnzdtvCwbk8Oz5TMg093YYfNjreh41FRuMXecN1rDA7ZE6RoYPgQQugNUWDfHWw==", "requires": { "@codemirror/lang-html": "^6.4.9", "@codemirror/lang-javascript": "^6.2.2", diff --git a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package.json b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package.json index 59046e3d3..06371007c 100644 --- a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package.json +++ b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/package.json @@ -52,7 +52,7 @@ "type": "module", "dependencies": { "@bexis2/bexis2-core-ui": "0.4.74", - "@bexis2/bexis2-rpm-ui": "0.2.15", + "@bexis2/bexis2-rpm-ui": "0.3.0", "@floating-ui/dom": "1.6.8", "@fortawesome/free-solid-svg-icons": "6.6.0", "@sveltejs/adapter-static": "3.0.2", diff --git a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/src/app.html b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/src/app.html index 461748824..177448812 100644 --- a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/src/app.html +++ b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI.Svelte/src/app.html @@ -9,7 +9,7 @@
-
+
%sveltekit.body%
diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/README.md b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/README.md index 3f05e1b1c..20e1c95ec 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/README.md +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/README.md @@ -1,4 +1,7 @@ # bexis2-rpm-ui +## 0.3.0 +- change loading of possible templates by datastructure generation + ## 0.2.13 - change message when file is analyzed for a data structure diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/package.json b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/package.json index 809dde532..ebc2d2a5d 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/package.json +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/package.json @@ -1,7 +1,42 @@ { "name": "@bexis2/bexis2-rpm-ui", - "version": "0.2.15", + "version": "0.3.0", "private": false, + "description": "Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).", + "keywords": [ + "bexis2", + "libary" + ], + "homepage": "https://github.com/BEXIS2/Core#readme", + "bugs": { + "url": "https://github.com/BEXIS2/Core/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/BEXIS2/Core.git" + }, + "license": "ISC", + "author": "David Schöne", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "svelte": "./dist/index.js" + }, + "./dist/index.css": { + "import": "./dist/index.css", + "require": "./dist/index.css" + } + }, + "main": "./src/lib/index.d.ts", + "types": "./src/lib/index.d.ts", + "directories": { + "test": "tests" + }, + "files": [ + "dist", + "src/lib" + ], "scripts": { "dev": "vite dev", "build": "vite build ", @@ -17,10 +52,20 @@ "build package": "svelte-kit sync && svelte-package --watch", "check outdated": "npm outdated", "upgrade all": "ncu --upgrade", + "0.npm login": "npm login", "1.npm - init": "npm init --scope bexis2", "2.npm - package": "svelte-package", "3.npm - publish": "npm publish --access public" }, + "dependencies": { + "@bexis2/bexis2-core-ui": "0.4.69", + "@floating-ui/dom": "1.6.8", + "@sveltejs/adapter-static": "3.0.2", + "@sveltejs/package": "2.3.2", + "papaparse": "5.4.1", + "patch-package": "8.0.0", + "svelte-fa": "4.0.2" + }, "devDependencies": { "@playwright/test": "1.45.3", "@skeletonlabs/skeleton": "2.10.2", @@ -49,49 +94,5 @@ "vite": "5.3.5", "vitest": "2.0.5" }, - "type": "module", - "dependencies": { - "@bexis2/bexis2-core-ui": "0.4.69", - "@floating-ui/dom": "1.6.8", - "@sveltejs/adapter-static": "3.0.2", - "@sveltejs/package": "2.3.2", - "papaparse": "5.4.1", - "patch-package": "8.0.0", - "svelte-fa": "4.0.2" - }, - "author": "David Schöne", - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/BEXIS2/Core.git" - }, - "bugs": { - "url": "https://github.com/BEXIS2/Core/issues" - }, - "homepage": "https://github.com/BEXIS2/Core#readme", - "keywords": [ - "bexis2", - "libary" - ], - "exports": { - ".": { - "types": "./dist/index.d.ts", - "svelte": "./dist/index.js" - }, - "./dist/index.css": { - "import": "./dist/index.css", - "require": "./dist/index.css" - } - }, - "module": "./src/lib/index.ts", - "types": "./src/lib/index.d.ts", - "description": "Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).", - "main": "./src/lib/index.d.ts", - "files": [ - "dist", - "src/lib" - ], - "directories": { - "test": "tests" - } + "module": "./src/lib/index.ts" } diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/app.html b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/app.html index 5476bc06c..b11fe848d 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/app.html +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/app.html @@ -16,7 +16,7 @@ dataset="0" version="0" structure="0" - file="Step4_Bird_MASTER_DataOnly_2001_names_corrected_taxon_annot_withouttimezone.csv" + file="2vars.csv" structure="0" isTemplateRequired="false" isMeaningRequired="false" diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/Variables.svelte b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/Variables.svelte index 6a355cc71..79c34154b 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/Variables.svelte +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/Variables.svelte @@ -141,10 +141,7 @@ names.push(v.name); } }); - console.log( - '🚀 ~ file: Variables.svelte:130 ~ checkNamesUnique ~ nonUniqueNames:', - nonUniqueNames - ); + return nonUniqueNames; } diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/variable/Variable.svelte b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/variable/Variable.svelte index 8a5659445..554c1ac74 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/variable/Variable.svelte +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/structure/variable/Variable.svelte @@ -99,7 +99,7 @@ import { faTable } from '@fortawesome/free-solid-svg-icons'; setList(); suggestedDataType = variable.dataType; suggestedUnits = variable.possibleUnits; - suggestedTemplates = variable.possibleTemplates; + setTemplates() console.log('🚀 ~ onMount ~ variable:', variable); // reset & reload validation @@ -137,6 +137,14 @@ import { faTable } from '@fortawesome/free-solid-svg-icons'; setValidationState(res); }); + function setTemplates() { + suggestedTemplates = $templateStore.filter((t) => variable.possibleTemplates.includes(t.id)); + suggestedTemplates.forEach((t) => { + t.group = "detect" + }); + console.log('🚀 ~ setTemplates ~ suggestedTemplates:', suggestedTemplates); + } + //change event: if input change check also validation only on the field // e.target.id is the id of the input component function onChangeHandler(e: any) { diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/types.ts b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/types.ts index d563fb0a2..9fab110ca 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/types.ts +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI.Svelte/src/lib/components/datastructure/types.ts @@ -92,7 +92,7 @@ export class VariableInstanceModel extends VariableModel { isOptional: boolean; displayPattern: listItemType | undefined; possibleUnits: unitListItemType[]; - possibleTemplates: templateListItemType[]; + possibleTemplates: number[]; possibleDisplayPattern: listItemType[]; public constructor() { diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Controllers/DataStructureController.cs b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Controllers/DataStructureController.cs index b70176ca1..4b3857798 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Controllers/DataStructureController.cs +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Controllers/DataStructureController.cs @@ -26,6 +26,7 @@ using System.Text; using System.Web; using System.Web.Mvc; +using System.Web.UI.HtmlControls; using Vaiona.Utils.Cfg; using Vaiona.Web.Mvc.Data; using Vaiona.Web.Mvc.Modularity; @@ -541,10 +542,15 @@ public JsonResult Generate(DataStructureCreationModel model) } // variable template - templates.ForEach(t => var.PossibleTemplates.Add(helper.ConvertTo(t, "detect"))); + templates.ForEach(t => var.PossibleTemplates.Add(t.Id)); if (var.PossibleTemplates.Any()) - var.Template = var.PossibleTemplates.FirstOrDefault(); + { + var ft = var.PossibleTemplates.First(); + var template = templates.FirstOrDefault(t => t.Id.Equals(ft)); + var.Template = helper.ConvertTo(template,"detect"); + } + // set meanings,constraints and description from template if (var.Template?.Id == 0) var.Template = null; diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/DataStructure/DataStructureCreationModel.cs b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/DataStructure/DataStructureCreationModel.cs index 46703f5f4..7f7333bd1 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/DataStructure/DataStructureCreationModel.cs +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/DataStructure/DataStructureCreationModel.cs @@ -36,6 +36,8 @@ public class DataStructureCreationModel public List TextMarkers { get; set; } public List Encodings { get; set; } + public List Templates { get; set; } + public List Preview { get; set; } /// diff --git a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/VariableModels.cs b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/VariableModels.cs index 9336b08a7..f8459fe68 100644 --- a/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/VariableModels.cs +++ b/Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Models/VariableModels.cs @@ -43,7 +43,7 @@ public class VariableInstanceModel : VariableModel public ListItem DisplayPattern { get; set; } public List PossibleUnits { get; set; } - public List PossibleTemplates { get; set; } + public List PossibleTemplates { get; set; } public List PossibleDisplayPattern { get; set; } public VariableInstanceModel() @@ -51,7 +51,7 @@ public VariableInstanceModel() Template = new VariableTemplateItem(); DisplayPattern = new ListItem(-1, "", "", ""); PossibleUnits = new List(); - PossibleTemplates = new List(); + PossibleTemplates = new List(); PossibleDisplayPattern = new List(); } }