diff --git a/GeneGenie.Gedcom.Tests/Data/UidAndBurg.ged b/GeneGenie.Gedcom.Tests/Data/UidAndBurg.ged
new file mode 100644
index 0000000..d761a50
--- /dev/null
+++ b/GeneGenie.Gedcom.Tests/Data/UidAndBurg.ged
@@ -0,0 +1,20 @@
+0 HEAD
+1 SOUR PhpGedView
+2 NAME PhpGedView Online Genealogy
+2 VERS 3.3.8 final
+1 DATE 1 Apr 2006
+0 @I1@ INDI
+1 _UID A5A812A4C0FE44C9A98F8D4627073B69AB88
+1 NAME TestGivenName /TestSurname/
+2 SURN TestSurname
+2 GIVN TestGivenName
+1 SEX M
+1 BIRT
+2 DATE 9 OCT 1990
+2 _BURG unbekannt
+1 CHAN
+2 DATE 28 DEC 2023
+3 TIME 11:21:46
+0 @SUBM@ SUBM
+1 NAME Test for GeneGenie
+0 TRLR
diff --git a/GeneGenie.Gedcom.Tests/GeneGenie.Gedcom.Tests.csproj b/GeneGenie.Gedcom.Tests/GeneGenie.Gedcom.Tests.csproj
index dbebb56..49bfdbc 100644
--- a/GeneGenie.Gedcom.Tests/GeneGenie.Gedcom.Tests.csproj
+++ b/GeneGenie.Gedcom.Tests/GeneGenie.Gedcom.Tests.csproj
@@ -74,6 +74,9 @@
Always
+
+ Always
+
diff --git a/GeneGenie.Gedcom.Tests/RecordReaderTests/GecomCustomRecordTest.cs b/GeneGenie.Gedcom.Tests/RecordReaderTests/GecomCustomRecordTest.cs
new file mode 100644
index 0000000..555fc91
--- /dev/null
+++ b/GeneGenie.Gedcom.Tests/RecordReaderTests/GecomCustomRecordTest.cs
@@ -0,0 +1,46 @@
+//
+// Copyright (c) GeneGenie.com. All Rights Reserved.
+// Licensed under the GNU Affero General Public License v3.0. See LICENSE in the project root for license information.
+//
+// Copyright (C) 2023 Herbert Oppmann gith@memotech.franken.de
+
+
+namespace GeneGenie.Gedcom.Tests.RecordReaderTests
+{
+ using GeneGenie.Gedcom.Parser;
+ using System;
+ using Xunit;
+
+ ///
+ /// Tests to ensure that custom records are correctly read in.
+ ///
+ public class GedcomCustomRecordTest
+ {
+ ///
+ /// Test for custom record '_UID' in individual record.
+ ///
+ [Fact]
+ public void Record_UID()
+ {
+ var reader = GedcomRecordReader.CreateReader("./Data/UidAndBurg.ged");
+ GedcomIndividualRecord indi = reader.Database.Individuals[0];
+ GedcomCustomRecord cr = indi.Custom[0];
+ Assert.Equal("_UID", cr.Tag);
+ Assert.Equal("A5A812A4C0FE44C9A98F8D4627073B69AB88", cr.Classification);
+ }
+
+ ///
+ /// Test for custom record '_BURG' in event record.
+ ///
+ [Fact]
+ public void Record_BURG()
+ {
+ var reader = GedcomRecordReader.CreateReader("./Data/UidAndBurg.ged");
+ GedcomIndividualRecord indi = reader.Database.Individuals[0];
+ GedcomEvent er = indi.Events[0];
+ GedcomCustomRecord cr = er.Custom[0];
+ Assert.Equal("_BURG", cr.Tag);
+ Assert.Equal("unbekannt", cr.Classification);
+ }
+ }
+}
diff --git a/GeneGenie.Gedcom/GedcomEvent.cs b/GeneGenie.Gedcom/GedcomEvent.cs
index 4e210ee..9415fdc 100644
--- a/GeneGenie.Gedcom/GedcomEvent.cs
+++ b/GeneGenie.Gedcom/GedcomEvent.cs
@@ -212,6 +212,9 @@ public override GedcomRecordType RecordType
get { return GedcomRecordType.Event; }
}
+ /// Gets or sets the list of entries found when parsing an event.
+ public GedcomRecordList Custom { get; set; } = new GedcomRecordList();
+
///
/// Gets the gedcom tag.
///
diff --git a/GeneGenie.Gedcom/Parser/GedcomRecordReader.cs b/GeneGenie.Gedcom/Parser/GedcomRecordReader.cs
index 2c37c78..a17630d 100644
--- a/GeneGenie.Gedcom/Parser/GedcomRecordReader.cs
+++ b/GeneGenie.Gedcom/Parser/GedcomRecordReader.cs
@@ -3807,7 +3807,7 @@ private void ReadEventRecord()
custom.Classification = lineValue;
}
- // TODO: may want to use customs at some point
+ eventRecord.Custom.Add(custom);
parseState.Records.Push(custom);
break;
}