diff --git a/src/AasxCsharpLibrary/Extensions/ExtendEnvironment.cs b/src/AasxCsharpLibrary/Extensions/ExtendEnvironment.cs index 7440d83d..9c293b69 100644 --- a/src/AasxCsharpLibrary/Extensions/ExtendEnvironment.cs +++ b/src/AasxCsharpLibrary/Extensions/ExtendEnvironment.cs @@ -10,6 +10,7 @@ This source code may use other Open Source software components (see LICENSE.txt) using AdminShellNS.Extensions; using Newtonsoft.Json; using System; +using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; @@ -497,8 +498,13 @@ public static ISubmodel FindSubmodel(this AasCore.Aas3_0.Environment environment return null; } - var submodels = environment.Submodels.Where(s => s.Id.Equals(key.Value, StringComparison.OrdinalIgnoreCase)); - if (submodels.Any()) + List submodels = null; + if (environment != null && !environment.Submodels.IsNullOrEmpty()) + { + submodels = environment.Submodels.Where(s => s.Id.Equals(key.Value, StringComparison.OrdinalIgnoreCase)).ToList(); + + } + if (!submodels.IsNullOrEmpty()) { return submodels.First(); } @@ -1032,6 +1038,7 @@ public static IReference CopySubmodelRefAndCD(this AasCore.Aas3_0.Environment en if (dstSub == null && copySubmodel) { dstSub = srcSub.Copy(); + environment.Submodels ??= new List(); environment.Submodels.Add(dstSub); } else @@ -1074,6 +1081,7 @@ private static void CopyConceptDescriptionsFrom(this AasCore.Aas3_0.Environment if (cdDest == null) { // copy new + environment.ConceptDescriptions ??= new List(); environment.ConceptDescriptions.Add(cdSrc.Copy()); }