コード例 #1
0
        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;
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Seany84/GedcomCore
        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);
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: KvanTTT/GenealogyTreeInGit
        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);
            }
        }