From 24879a2ff3666c1d4a3b2d9cdeb85f6f9619bdea Mon Sep 17 00:00:00 2001 From: aorzelskiGH <aorzelski@phoenixcontact.com> Date: Fri, 10 Jan 2025 10:53:25 +0100 Subject: [PATCH] Support multiple shells from same environment in blazor --- src/AasxServerBlazor/Data/AASService.cs | 141 +++++++++--------- .../Properties/launchSettings.json | 2 +- 2 files changed, 73 insertions(+), 70 deletions(-) diff --git a/src/AasxServerBlazor/Data/AASService.cs b/src/AasxServerBlazor/Data/AASService.cs index 515d61c04..6c124aef2 100644 --- a/src/AasxServerBlazor/Data/AASService.cs +++ b/src/AasxServerBlazor/Data/AASService.cs @@ -76,91 +76,94 @@ public void BuildTree() for (var i = 0; i < Program.envimax; i++) { - var root = new Item - { - envIndex = i - }; if (Program.env[i] != null && Program.env[i].AasEnv.AssetAdministrationShells != null && Program.env[i].AasEnv.AssetAdministrationShells.Count > 0) { - root.Text = Program.env[i].AasEnv.AssetAdministrationShells[0].IdShort; - root.Tag = Program.env[i].AasEnv.AssetAdministrationShells[0]; - if (Program.envSymbols[i] != "L") + foreach (var aas in Program.env[i].AasEnv.AssetAdministrationShells) { - var children = new List<Item>(); - var env = Program.env[i]; - var aas = env.AasEnv.AssetAdministrationShells[0]; - if (env != null && aas.Submodels is {Count: > 0}) - foreach (var smr in aas.Submodels) - { - var sm = env.AasEnv.FindSubmodel(smr); - if (sm is not {IdShort: not null}) + var root = new Item + { + envIndex = i + }; + root.Text = aas.IdShort; + root.Tag = aas; + if (Program.envSymbols[i] != "L") + { + var children = new List<Item>(); + var env = Program.env[i]; + //var aas = env.AasEnv.AssetAdministrationShells[0]; + if (env != null && aas.Submodels is { Count: > 0 }) + foreach (var smr in aas.Submodels) { - continue; - } + var sm = env.AasEnv.FindSubmodel(smr); + if (sm is not { IdShort: not null }) + { + continue; + } - var smItem = new Item - { - envIndex = i, - Text = sm.IdShort, - Tag = sm - }; - children.Add(smItem); - var smItemChildren = new List<Item>(); - if (sm.SubmodelElements != null) - foreach (var sme in sm.SubmodelElements) + var smItem = new Item { - var smeItem = new Item - { - envIndex = i, - Text = sme.IdShort, - Tag = sme - }; - smItemChildren.Add(smeItem); - switch (sme) + envIndex = i, + Text = sm.IdShort, + Tag = sm + }; + children.Add(smItem); + var smItemChildren = new List<Item>(); + if (sm.SubmodelElements != null) + foreach (var sme in sm.SubmodelElements) { - case SubmodelElementCollection collection: + var smeItem = new Item { - createSMECItems(smeItem, collection, i); - break; - } - case Operation operation: - { - createOperationItems(smeItem, operation, i); - break; - } - case Entity entity: + envIndex = i, + Text = sme.IdShort, + Tag = sme + }; + smItemChildren.Add(smeItem); + switch (sme) { - CreateEntityItems(smeItem, entity, i); - break; + case SubmodelElementCollection collection: + { + createSMECItems(smeItem, collection, i); + break; + } + case Operation operation: + { + createOperationItems(smeItem, operation, i); + break; + } + case Entity entity: + { + CreateEntityItems(smeItem, entity, i); + break; + } + case AnnotatedRelationshipElement annotatedRelationshipElement: + CreateAnnotatedRelationshipElementItems(smeItem, annotatedRelationshipElement, i); + break; + case SubmodelElementList smeList: + CreateSMEListItems(smeItem, smeList, i); + break; } - case AnnotatedRelationshipElement annotatedRelationshipElement: - CreateAnnotatedRelationshipElementItems(smeItem, annotatedRelationshipElement, i); - break; - case SubmodelElementList smeList: - CreateSMEListItems(smeItem, smeList, i); - break; } - } - smItem.Children = smItemChildren; - foreach (var c in smItemChildren) - c.parent = smItem; - } + smItem.Children = smItemChildren; + foreach (var c in smItemChildren) + c.parent = smItem; + } + + root.Children = children; + foreach (var c in children) + c.parent = root; + items.Add(root); + } - root.Children = children; - foreach (var c in children) - c.parent = root; + if (Program.envSymbols[i] != "L") + { + continue; + } + + root.Text = Path.GetFileName(Program.envFileName[i]); items.Add(root); } } - - if (Program.envSymbols[i] != "L") - { - continue; - } - - root.Text = Path.GetFileName(Program.envFileName[i]); - items.Add(root); } } diff --git a/src/AasxServerBlazor/Properties/launchSettings.json b/src/AasxServerBlazor/Properties/launchSettings.json index bcd287334..2f6ba2d39 100644 --- a/src/AasxServerBlazor/Properties/launchSettings.json +++ b/src/AasxServerBlazor/Properties/launchSettings.json @@ -10,7 +10,7 @@ }, "AasxServerBlazor": { "commandName": "Project", - "commandLineArgs": "--with-db --start-index 100 --no-security --save-temp 30 --secret-string-api 1234 --aasx-in-memory 1000 --data-path \"C:\\Development\\aasxs-repository\" --edit --external-blazor http://localhost:5001", + "commandLineArgs": "--no-security --save-temp 30 --secret-string-api 1234 --aasx-in-memory 1000 --data-path \"\\\\wsl.localhost\\Ubuntu\\home\\oze\\assethub\\aasx\" --edit --external-blazor http://localhost:5001", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development",