Skip to content

Commit f989938

Browse files
AlexanderWollbrinkjuileetikekarFrankSchnicke
authored
supporting package.GetPart with absolute URI (#208)
* supporting package.GetPart with absolute URI --------- Co-authored-by: juileetikekar <juilee.tikekar@iosb-ina.fraunhofer.de> Co-authored-by: Frank Schnicke <frank.schnicke@iese.fraunhofer.de>
1 parent d43b085 commit f989938

File tree

2 files changed

+73
-14
lines changed

2 files changed

+73
-14
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# AASX Server
1+
# AASX Server
22
![Check-release-workflow](
33
https://github.com/admin-shell-io/aasx-server/workflows/Check-release-workflow/badge.svg
44
) ![Check-style-workflow](

src/AasxCsharpLibrary/AdminShellPackageEnv.cs

+72-13
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,12 @@ private static (AasCore.Aas3_0.Environment, Package, String) LoadPackageAasx(str
407407
foreach (var x in xs)
408408
if (x.SourceUri.ToString() == "/")
409409
{
410-
originPart = package.GetPart(x.TargetUri);
410+
//originPart = package.GetPart(x.TargetUri);
411+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
412+
if (package.PartExists(absoluteURI))
413+
{
414+
originPart = package.GetPart(absoluteURI);
415+
}
411416
break;
412417
}
413418

@@ -419,7 +424,12 @@ private static (AasCore.Aas3_0.Environment, Package, String) LoadPackageAasx(str
419424
xs = originPart.GetRelationshipsByType("http://www.admin-shell.io/aasx/relationships/aas-spec");
420425
foreach (var x in xs)
421426
{
422-
specPart = package.GetPart(x.TargetUri);
427+
//specPart = package.GetPart(x.TargetUri);
428+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
429+
if (package.PartExists(absoluteURI))
430+
{
431+
specPart = package.GetPart(absoluteURI);
432+
}
423433
break;
424434
}
425435

@@ -566,7 +576,12 @@ private void AssignDefaultThumbnailPath()
566576
foreach (var x in xs)
567577
if (x.SourceUri.ToString() == "/")
568578
{
569-
thumbPart = _openPackage.GetPart(x.TargetUri);
579+
//thumbPart = _openPackage.GetPart(x.TargetUri);
580+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
581+
if (_openPackage.PartExists(absoluteURI))
582+
{
583+
thumbPart = _openPackage.GetPart(absoluteURI);
584+
}
570585
thumbUri = x.TargetUri;
571586
break;
572587
}
@@ -795,7 +810,12 @@ public bool SaveAs(string fn, bool writeFreshly = false, SerializationFormat pre
795810
foreach (var x in xs)
796811
if (x.SourceUri.ToString() == "/")
797812
{
798-
originPart = package.GetPart(x.TargetUri);
813+
//originPart = package.GetPart(x.TargetUri);
814+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
815+
if (package.PartExists(absoluteURI))
816+
{
817+
originPart = package.GetPart(absoluteURI);
818+
}
799819
break;
800820
}
801821
if (originPart == null)
@@ -821,7 +841,12 @@ public bool SaveAs(string fn, bool writeFreshly = false, SerializationFormat pre
821841
foreach (var x in xs)
822842
{
823843
specRel = x;
824-
specPart = package.GetPart(x.TargetUri);
844+
//specPart = package.GetPart(x.TargetUri);
845+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
846+
if (package.PartExists(absoluteURI))
847+
{
848+
specPart = package.GetPart(absoluteURI);
849+
}
825850
break;
826851
}
827852

@@ -971,7 +996,12 @@ public bool SaveAs(string fn, bool writeFreshly = false, SerializationFormat pre
971996
foreach (var x in xs)
972997
if (x.TargetUri == psfAdd.Uri)
973998
{
974-
filePart = package.GetPart(x.TargetUri);
999+
//filePart = package.GetPart(x.TargetUri);
1000+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
1001+
if (package.PartExists(absoluteURI))
1002+
{
1003+
filePart = package.GetPart(absoluteURI);
1004+
}
9751005
break;
9761006
}
9771007
}
@@ -983,7 +1013,12 @@ public bool SaveAs(string fn, bool writeFreshly = false, SerializationFormat pre
9831013
foreach (var x in xs)
9841014
if (x.SourceUri.ToString() == "/" && x.TargetUri == psfAdd.Uri)
9851015
{
986-
filePart = package.GetPart(x.TargetUri);
1016+
//filePart = package.GetPart(x.TargetUri);
1017+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
1018+
if (package.PartExists(absoluteURI))
1019+
{
1020+
filePart = package.GetPart(absoluteURI);
1021+
}
9871022
break;
9881023
}
9891024
}
@@ -1279,10 +1314,19 @@ public long GetStreamSizeFromPackage(string uriString)
12791314
{
12801315
if (_openPackage == null)
12811316
return 0;
1282-
var part = _openPackage.GetPart(new Uri(uriString, UriKind.RelativeOrAbsolute));
1283-
using (var s = part.GetStream(FileMode.Open))
1317+
var uri = new Uri(uriString, UriKind.RelativeOrAbsolute);
1318+
1319+
PackagePart part = null;
1320+
if (_openPackage.PartExists(uri))
12841321
{
1285-
res = s.Length;
1322+
part = _openPackage.GetPart(uri);
1323+
}
1324+
if (part != null)
1325+
{
1326+
using (var s = part.GetStream(FileMode.Open))
1327+
{
1328+
res = s.Length;
1329+
}
12861330
}
12871331
}
12881332
catch (Exception ex)
@@ -1319,7 +1363,12 @@ public Stream GetLocalThumbnailStream(ref Uri thumbUri, bool init = false)
13191363
foreach (var x in xs)
13201364
if (x.SourceUri.ToString() == "/")
13211365
{
1322-
thumbPart = _openPackage.GetPart(x.TargetUri);
1366+
//thumbPart = _openPackage.GetPart(x.TargetUri);
1367+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
1368+
if (_openPackage.PartExists(absoluteURI))
1369+
{
1370+
thumbPart = _openPackage.GetPart(absoluteURI);
1371+
}
13231372
thumbUri = x.TargetUri;
13241373
break;
13251374
}
@@ -1386,7 +1435,12 @@ public ListOfAasSupplementaryFile GetListOfSupplementaryFiles()
13861435
foreach (var x in xs)
13871436
if (x.SourceUri.ToString() == "/")
13881437
{
1389-
originPart = _openPackage.GetPart(x.TargetUri);
1438+
//originPart = _openPackage.GetPart(x.TargetUri);
1439+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
1440+
if (_openPackage.PartExists(absoluteURI))
1441+
{
1442+
originPart = _openPackage.GetPart(absoluteURI);
1443+
}
13901444
break;
13911445
}
13921446

@@ -1397,7 +1451,12 @@ public ListOfAasSupplementaryFile GetListOfSupplementaryFiles()
13971451
xs = originPart.GetRelationshipsByType("http://www.admin-shell.io/aasx/relationships/aas-spec");
13981452
foreach (var x in xs)
13991453
{
1400-
specPart = _openPackage.GetPart(x.TargetUri);
1454+
//specPart = _openPackage.GetPart(x.TargetUri);
1455+
var absoluteURI = PackUriHelper.ResolvePartUri(x.SourceUri, x.TargetUri);
1456+
if (_openPackage.PartExists(absoluteURI))
1457+
{
1458+
specPart = _openPackage.GetPart(absoluteURI);
1459+
}
14011460
break;
14021461
}
14031462

0 commit comments

Comments
 (0)