private void GedcomImportForm_Activated(object sender, EventArgs e) { if (loaded == false) { loaded = true; lblParsing.Text = "Parsing Gedcom..."; Application.DoEvents(); GedcomParser gedcomParser = new GedcomParser(); gedcomParser.Parse(Filename); lblParsing.Text = "Parsing Gedcom complete."; lblIndividuals.Text = "Parsed " + gedcomParser.gedcomIndividuals.Count.ToString() + " individuals..."; lblFamilies.Text = "Parsed " + gedcomParser.gedcomFamilies.Count.ToString() + " families..."; Application.DoEvents(); GedcomImporter.Import(gedcomParser); Individual a = null; using (var ctx = new FamilyTracesContext()) { a = ctx.Individuals.First(); } /* * //Test code: TODO remove * AncestorList ancestorList = new AncestorList(); * ancestorList.MaxDepth = 200; * ancestorList.CalcAncestorList("@I7952@", gedcomParser.gedcomIndividuals, gedcomParser.gedcomFamilies, true, @"C:\Users\Serge.Meunier\Downloads\mine\ancestry.txt"); * lblIndividuals.Text = "Exporting completed"; */ butClose.Enabled = true; } }
static void Main(string[] args) { args = new[] { "TGC55C.ged" }; if (args.Length != 1) { Console.WriteLine("usage: gg-test.exe filename"); return; } var parser = new GedcomParser(); var file = new FileInfo(args[0]); var gedcom = parser.Parse(file.OpenRead()); var outFile = new FileInfo("text-out.txt"); var writer = new GedcomWriter(); Stream s = outFile.OpenWrite(); writer.Write(gedcom, s); s.Close(); Console.WriteLine("read {0} objects", gedcom.Records.Count); }
public static void Import(GedcomParser gedcomParser) { Hashtable individualIdMapper = new Hashtable(); using (var ctx = new FamilyTracesContext()) { ctx.Families.RemoveRange(ctx.Families); ctx.Individuals.RemoveRange(ctx.Individuals); ctx.Sources.RemoveRange(ctx.Sources); ctx.Notes.RemoveRange(ctx.Notes); ctx.SaveChanges(); foreach (GedcomNote gedcomNote in gedcomParser.gedcomNotes.Values) { ctx.Notes.Add(new Note() { Id = gedcomNote.Id, Text = gedcomNote.Text }); } foreach (GedcomSource gedcomSource in gedcomParser.gedcomSources.Values) { ctx.Sources.Add(new Source() { Id = gedcomSource.Id, Text = gedcomSource.Text }); } foreach (GedcomIndividual gedcomIndividual in gedcomParser.gedcomIndividuals.Values.Take(20)) { ctx.Individuals.Add(new Individual() { Id = gedcomIndividual.Id, GivenName = gedcomIndividual.GivenName, BirthDate = gedcomIndividual.BirthDate, BirthPlace = gedcomIndividual.BirthPlace, Description = gedcomIndividual.Description, DiedCause = gedcomIndividual.DiedCause, DiedDate = gedcomIndividual.DiedDate, DiedPlace = gedcomIndividual.DiedPlace, Gender = Enums.Gender.Male, Nationality = gedcomIndividual.Nationality, Occupation = gedcomIndividual.Occupation, Prefix = gedcomIndividual.Prefix, Suffix = gedcomIndividual.Suffix, Surname = gedcomIndividual.Surname }); } ctx.SaveChanges(); } }
static void Main(string[] args) { var logger = new ConsoleLogger(); if (args.Length == 0) { logger.LogError("Path to .ged file should be specified"); return; } if (!File.Exists(args[0])) { logger.LogError($"File {args[0]} does not exist"); return; } var gedcomParser = new GedcomParser() { Logger = logger }; GedcomParseResult parseResult = gedcomParser.Parse(args[0]); var converter = new GedcomToGitFamilyConverter(); Family family = converter.Convert(parseResult); bool runScript = false; var commandGenerator = new GitCommandGenerator(family); for (int i = 1; i < args.Length; i++) { string arg = args[i]; if (arg == "-r" || arg == "--run") { runScript = true; } else if (arg == "--only-birth-events") { commandGenerator.OnlyBirthEvents = true; } else if (arg == "--ignore-not-person-events") { commandGenerator.IgnoreNotPersonEvents = true; } else if (arg == "--ignore-events-without-date") { commandGenerator.IgnoreEventsWithoutDate = true; } else if (arg.StartsWith("http") || arg.StartsWith("git")) { commandGenerator.Source = arg; } else { logger.LogError($"Unknown parameter {arg}"); } } string commands = commandGenerator.Generate(); string filePath = Path.GetDirectoryName(args[0]); string fileName = Path.GetFileNameWithoutExtension(args[0]); string ext = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ".cmd" : ".sh"; string scriptFileName = Path.Combine(filePath, fileName + ext); File.WriteAllText(scriptFileName, commands); if (runScript) { string dirName = Path.Combine(filePath, fileName); if (Directory.Exists(dirName)) { logger.LogError($"Directory {dirName} exists. Remove it before running script"); return; } var runner = new GitScriptRunner { Logger = logger }; runner.Run(filePath, scriptFileName); } }