Skip to content

Commit 35b0ed5

Browse files
committed
.
1 parent d1c989e commit 35b0ed5

6 files changed

Lines changed: 29 additions & 22 deletions

File tree

src/DeterministicIoPackaging/DeterministicPackage.cs

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ static void DuplicateEntry(Entry sourceEntry, Archive targetArchive)
2828
var targetEntry = CreateEntry(sourceEntry, targetArchive);
2929
using var targetStream = targetEntry.Open();
3030

31-
if (IsRelationships(sourceEntry))
31+
if (sourceEntry.IsRelationships())
3232
{
3333
var xml = Relationships.PatchRelationships(sourceStream, true);
3434
SaveXml(xml, targetStream);
@@ -62,7 +62,7 @@ static async Task DuplicateEntryAsync(Entry sourceEntry, Archive targetArchive,
6262
using var sourceStream = await sourceEntry.OpenAsync(cancel);
6363
var targetEntry = CreateEntry(sourceEntry, targetArchive);
6464
using var targetStream = await targetEntry.OpenAsync(cancel);
65-
if (IsRelationships(sourceEntry))
65+
if (sourceEntry.IsRelationships())
6666
{
6767
var xml = Relationships.PatchRelationships(sourceStream, true);
6868
await SaveXml(xml, targetStream, cancel);
@@ -92,21 +92,6 @@ static Task SaveXml(XDocument xml, Stream targetStream, Cancel cancel) =>
9292
static void SaveXml(XDocument xml, Stream targetStream) =>
9393
xml.Save(targetStream, SaveOptions.DisableFormatting);
9494

95-
96-
97-
static XDocument PatchSheet(Stream sourceStream)
98-
{
99-
var xml = XDocument.Load(sourceStream);
100-
return PatchSheet(xml);
101-
}
102-
103-
internal static XDocument PatchSheet(XDocument xml)
104-
{
105-
XNamespace xr = "http://schemas.microsoft.com/office/spreadsheetml/2014/revision";
106-
xml.Root!.Attribute(xr + "uid")?.Remove();
107-
return xml;
108-
}
109-
11095
static Entry CreateEntry(Entry source, Archive target)
11196
{
11297
var entry = target.CreateEntry(source.FullName, CompressionLevel.Fastest);
@@ -117,7 +102,4 @@ static Entry CreateEntry(Entry source, Archive target)
117102
static bool IsPsmdcp(Entry entry) =>
118103
entry.FullName.StartsWith("package/services/metadata/core-properties/") &&
119104
entry.Name.EndsWith("psmdcp");
120-
121-
static bool IsRelationships(Entry _) =>
122-
_.FullName is "_rels/.rels";
123105
}

src/DeterministicIoPackaging/Relationships.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ static class Relationships
55
public static bool IsWorkbookRelationships(this Entry entry) =>
66
entry.FullName is "xl/_rels/workbook.xml.rels";
77

8+
public static bool IsRelationships(this Entry entry) =>
9+
entry.FullName is "_rels/.rels";
10+
811
public static XDocument PatchRelationships(Stream sourceStream, bool patchIds)
912
{
1013
var xml = XDocument.Load(sourceStream);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
static class Sheet
2+
{
3+
static XDocument PatchSheet(Stream sourceStream)
4+
{
5+
var xml = XDocument.Load(sourceStream);
6+
return PatchSheet(xml);
7+
}
8+
9+
internal static XDocument PatchSheet(XDocument xml)
10+
{
11+
XNamespace xr = "http://schemas.microsoft.com/office/spreadsheetml/2014/revision";
12+
xml.Root!.Attribute(xr + "uid")?.Remove();
13+
return xml;
14+
}
15+
16+
public static bool IsWorksheetXml(this Entry entry)
17+
{
18+
var name = entry.FullName;
19+
return name.StartsWith("xl/worksheets/") &&
20+
name.EndsWith(".xml");
21+
}
22+
}
File renamed without changes.
File renamed without changes.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[TestFixture]
2-
public class PatchSheetTests
2+
public class SheetTests
33
{
44
[Test]
55
public Task Run()
@@ -35,7 +35,7 @@ public Task Run()
3535
<pageMargins left="0.75" right="0.75" top="1" bottom="1" header="0.5" footer="0.5"/>
3636
</worksheet>
3737
""");
38-
DeterministicPackage.PatchSheet(xml);
38+
Sheet.PatchSheet(xml);
3939

4040
return Verify(xml);
4141
}

0 commit comments

Comments
 (0)