private void DumpXML(string file)
        {
            string dir        = ".\\Data";
            string gedcomFile = Path.Combine(dir, file);

            reader = new GedcomRecordReader();
            reader.ReadGedcom(gedcomFile);

            GedcomXMLGenerator gen = new GedcomXMLGenerator();

            gen.Database = reader.Database;

            XmlDocument doc = gen.GenerateXML();

            string xmlOutput = Path.Combine(dir, "XmlOutput");

            if (!Directory.Exists(xmlOutput))
            {
                Directory.CreateDirectory(xmlOutput);
            }

            string xmlFile = Path.Combine(xmlOutput, file + ".xml");

            doc.Save(xmlFile);
        }
Пример #2
0
        private GedcomRecordReader GetReader(string file)
        {
            var reader = new GedcomRecordReader();

            reader.ReadGedcom(file);
            return(reader);
        }
        private void Sealing_temple_code_can_be_read_from_family_record_in_file()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\Spouse-sealing.ged");

            var family = reader.Database.Families.Single();

            Assert.Equal("Temple Code", family.SpouseSealing.TempleCode);
        }
        private void Sealing_date_can_be_read_from_family_record_in_file()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\Spouse-sealing.ged");

            var family = reader.Database.Families.Single();

            Assert.Equal("10 JAN 2011", family.SpouseSealing.Date.Date1);
        }
        private void Sealing_can_be_read_from_family_record_in_file()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\Spouse-sealing.ged");

            var family = reader.Database.Families.Single();

            Assert.NotNull(family.SpouseSealing);
        }
        public void Characters_can_be_translated_to_unicode(string childName, int rawAnsiValue, string expectedUnicode)
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\Ansi.ged");

            var child = reader.Database.Individuals.First(i => i.GetName().Name == childName);

            Assert.True(expectedUnicode == child.Birth.Place.Name, $"Ansi value of {rawAnsiValue} ({childName}) could not be translated");
        }
        private void Sealing_place_can_be_read_from_family_record_in_file()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\Spouse-sealing.ged");

            var family = reader.Database.Families.Single();

            Assert.Equal("Timbuktu", family.SpouseSealing.Place.Name);
        }
Пример #8
0
        private void One_individual_from_family_can_be_deleted_and_family_still_has_note()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");

            reader.Database.Individuals.First().Delete();

            Assert.Single(reader.Database.Families.Single().Notes);
        }
        private void Read(string file)
        {
            string dir        = ".\\Data";
            string gedcomFile = Path.Combine(dir, file);

            reader = new GedcomRecordReader();
            reader.ReadGedcom(gedcomFile);
        }
        private void Sealing_description_can_be_read_from_family_record_in_file()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\Spouse-sealing.ged");

            var family = reader.Database.Families.Single();

            Assert.Equal("Sealing description", family.SpouseSealing.Description);
        }
Пример #11
0
        private void One_individual_from_family_can_be_deleted_and_family_still_remains()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");

            reader.Database.Individuals.First().Delete();

            Assert.Equal(1, reader.Database.Families.Count);
        }
Пример #12
0
        private void Surname_with_leading_space_is_parsed_and_trimmed()
        {
            var sourceFile = ".\\Data\\name-spaced.ged";
            var reader     = GedcomRecordReader.CreateReader(sourceFile);

            var individual = reader.Database.Individuals.Single();

            Assert.Equal("Olsen", individual.Names.Single().Surname);
        }
Пример #13
0
        private void Given_name_with_leading_space_can_be_parsed()
        {
            var sourceFile = ".\\Data\\name-spaced.ged";
            var reader     = GedcomRecordReader.CreateReader(sourceFile);

            var individual = reader.Database.Individuals.Single();

            Assert.Equal("Peter /Olsen/", individual.Names.Single().Name);
        }
Пример #14
0
        private void Individuals_can_be_deleted_and_family_is_removed_if_no_one_left()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");

            reader.Database.Individuals.First().Delete();
            reader.Database.Individuals.Single().Delete();

            Assert.Empty(reader.Database.Families);
        }
Пример #15
0
        private void Individuals_can_be_deleted(string sourceFile)
        {
            var reader        = GedcomRecordReader.CreateReader(sourceFile);
            var originalCount = reader.Database.Individuals.Count;

            reader.Database.Individuals.Last().Delete();

            Assert.Equal(originalCount - 1, reader.Database.Individuals.Count);
        }
        public void Characters_can_be_translated_to_unicode(string childName, string birthPlace, string deathPlace)
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\Ansel.ged");

            var child = reader.Database.Individuals.First(i => i.GetName().Name == childName);

            Assert.Equal(birthPlace, child.Birth.Place.Name);
            Assert.Equal(deathPlace, child.Death.Place.Name);
        }
Пример #17
0
        private void Correct_number_of_sources_loaded_for_individual()
        {
            var    reader   = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");
            string personId = reader.Parser.XrefCollection["P1"];

            var individual = reader.Database.Individuals.First(i => i.XRefID == personId);

            Assert.Equal(1, individual.Birth.Sources.Count);
            Assert.Equal(1, individual.Death.Sources.Count);
        }
        private GedcomRecordReader RewrittenFile()
        {
            var sourceFile     = ".\\Data\\Spouse-sealing.ged";
            var originalReader = GedcomRecordReader.CreateReader(sourceFile);
            var rewrittenPath  = sourceFile + ".rewritten";

            GedcomRecordWriter.OutputGedcom(originalReader.Database, rewrittenPath);

            return(GedcomRecordReader.CreateReader(rewrittenPath));
        }
Пример #19
0
        private void After_family_is_removed_notes_are_removed_internally()
        {
            var reader = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");
            var noteId = reader.Database.Families[0].Notes[0];

            reader.Database.Individuals.First().Delete();
            reader.Database.Individuals.Single().Delete();

            Assert.Null(reader.Database[noteId]);
        }
Пример #20
0
        public static void ctree(string file)
        {
            var gedcomReader = GedcomRecordReader.CreateReader(file);

            tree1 = gedcomReader.Database;
            if (tree1 != null)
            {
                tree2 = gedcomReader.Database;
            }
        }
Пример #21
0
        private void Individual_can_be_deleted_and_source_records_for_sub_facts_are_dereferenced()
        {
            var reader           = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");
            var sourceId         = reader.Parser.XrefCollection["SRC2"];
            var originalRefCount = reader.Database[sourceId].RefCount;

            reader.Database.Individuals.First().Delete();

            Assert.Equal(2, originalRefCount);
            Assert.Equal(1, reader.Database[sourceId].RefCount);
        }
Пример #22
0
        private void Gedcom_headers_are_equal_after_rewriting(string sourceFile)
        {
            var originalReader = GedcomRecordReader.CreateReader(sourceFile);
            var rewrittenPath  = sourceFile + ".rewritten";

            GedcomRecordWriter.OutputGedcom(originalReader.Database, rewrittenPath);

            var rewrittenReader = GedcomRecordReader.CreateReader(rewrittenPath);

            Assert.Equal(originalReader.Database.Header, rewrittenReader.Database.Header);
        }
Пример #23
0
        private void Deleting_individual_with_unique_reference_to_source_deletes_source()
        {
            var reader              = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");
            var sourceId            = reader.Parser.XrefCollection["SRC1"];
            var originalSourceCount = reader.Database.Sources.Count;

            reader.Database.Individuals.First().Delete();

            Assert.Equal(3, originalSourceCount);
            Assert.Equal(2, reader.Database.Sources.Count);
        }
Пример #24
0
        private void Gedcom_headers_are_equal_after_rewriting(string sourceFile)
        {
            var originalReader = GedcomRecordReader.CreateReader(sourceFile);
            var rewrittenPath  = $"{sourceFile}-{System.Guid.NewGuid()}.rewritten";

            GedcomRecordWriter.OutputGedcom(originalReader.Database, rewrittenPath);

            var rewrittenReader = GedcomRecordReader.CreateReader(rewrittenPath);

            AttachFileContentsToTest(sourceFile, rewrittenPath);
            Assert.Equal(originalReader.Database.Header, rewrittenReader.Database.Header);
        }
        private void Gedcom_databases_are_equal_after_rewriting(string sourceFile)
        {
            var originalReader = GedcomRecordReader.CreateReader(sourceFile);
            var rewrittenPath  = sourceFile + ".rewritten";

            GedcomRecordWriter.OutputGedcom(originalReader.Database, rewrittenPath);

            var rewrittenReader = GedcomRecordReader.CreateReader(rewrittenPath);

            AttachFileContentsToTest(sourceFile, rewrittenPath);
            Assert.Equal(originalReader.Database, rewrittenReader.Database);
        }
Пример #26
0
        private void Deleting_all_individuals_with_shared_reference_to_source_deletes_source()
        {
            var reader           = GedcomRecordReader.CreateReader(".\\Data\\multiple-sources.ged");
            var sourceId         = reader.Parser.XrefCollection["SRC2"];
            var originalRefCount = reader.Database[sourceId].RefCount;

            reader.Database.Individuals.First().Delete();
            reader.Database.Individuals.Single().Delete();

            Assert.Equal(2, originalRefCount);
            Assert.Null(reader.Database[sourceId]);
        }
        private void Individuals_are_equal_after_rewriting(string sourceFile)
        {
            var originalReader = GedcomRecordReader.CreateReader(sourceFile);
            var rewrittenPath  = sourceFile + ".rewritten";

            GedcomRecordWriter.OutputGedcom(originalReader.Database, rewrittenPath);

            var rewrittenReader = GedcomRecordReader.CreateReader(rewrittenPath);

            AttachFileContentsToTest(sourceFile, rewrittenPath);
            Assert.True(GedcomGenericListComparer.CompareGedcomRecordLists(originalReader.Database.Individuals, rewrittenReader.Database.Individuals));
        }
        private List <GedcomIndividualRecord> RewrittenFile()
        {
            var sourceFile     = ".\\Data\\name.ged";
            var originalReader = GedcomRecordReader.CreateReader(sourceFile);
            var rewrittenPath  = sourceFile + ".rewritten";

            GedcomRecordWriter.OutputGedcom(originalReader.Database, rewrittenPath);

            var reader = GedcomRecordReader.CreateReader(rewrittenPath);

            return(reader.Database.Individuals);
        }
        private static GedcomDatabase LoadGedcomFromFile()
        {
            var gedcomReader = GedcomRecordReader.CreateReader("Data\\presidents.ged");

            if (gedcomReader.Parser.ErrorState != Parser.Enums.GedcomErrorState.NoError)
            {
                Console.WriteLine($"Could not read file, encountered error {gedcomReader.Parser.ErrorState} press a key to continue.");
                Console.ReadKey();
                return(null);
            }

            return(gedcomReader.Database);
        }
Пример #30
0
        public Task <IEnumerable <Person> > GetPeopleFromGedcomAsync(string gedcomFile)
        {
            return(Task.Run(() =>
            {
                var reader = GedcomRecordReader.CreateReader(gedcomFile);
                var db = reader.Database;

                return from p in db.Individuals
                where p.Names.Any()
                let name = p.Names.First()
                           select new Person(
                    name.Surname,
                    name.Given,
                    p.Birth?.Date?.DateTime1,
                    p.Birth?.Address?.ToString(),
                    p.Death?.Date?.DateTime1,
                    p.Death?.Address?.ToString());
            }));
        }