Beispiel #1
0
        private void ProcessRootLevel(string[] lineArray)
        {
            switch (_currentRecord)
            {
            case GedcomRecordEnum.Individual:
                Individuals.Add(_currentIndividual);
                break;

            case GedcomRecordEnum.Family:
                Families.Add(_currentFamily);
                break;

            case GedcomRecordEnum.Note:
                Notes.Add(_currentNote);
                break;
            }

            if (lineArray[1] == "HEAD")
            {
                _currentRecord    = GedcomRecordEnum.Header;
                _currentSubRecord = GedcomSubRecordEnum.None;
            }
            else if (lineArray[1].IndexOf("@") >= 0)
            {
                switch (lineArray[2])
                {
                case "INDI":
                    _currentRecord     = GedcomRecordEnum.Individual;
                    _currentIndividual = new Individual {
                        Id = lineArray[1]
                    };
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "FAM":
                    _currentRecord = GedcomRecordEnum.Family;
                    _currentFamily = new Family {
                        Id = lineArray[1]
                    };
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "NOTE":
                    _currentRecord = GedcomRecordEnum.Note;
                    _currentNote   = new Note {
                        Id = lineArray[1]
                    };
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;
                }
            }
        }
Beispiel #2
0
        private void ProcessRootLevel(string[] lineArray)
        {
            switch (_currentRecord)
            {
                case GedcomRecordEnum.Individual:
                    Individuals.Add(_currentIndividual);
                    break;
                case GedcomRecordEnum.Family:
                    Families.Add(_currentFamily);
                    break;
                case GedcomRecordEnum.Note:
                    Notes.Add(_currentNote);
                    break;
            }

            if (lineArray[1] == "HEAD")
            {
                    _currentRecord = GedcomRecordEnum.Header;
                    _currentSubRecord = GedcomSubRecordEnum.None;
            } else if (lineArray[1].IndexOf("@") >= 0) {
                switch (lineArray[2])
                {
                    case "INDI":
                        _currentRecord = GedcomRecordEnum.Individual;
                        _currentIndividual = new Individual { Id = lineArray[1] };
                        _currentSubRecord = GedcomSubRecordEnum.None;
                        break;
                    case "FAM":
                        _currentRecord = GedcomRecordEnum.Family;
                        _currentFamily = new Family { Id = lineArray[1] };
                        _currentSubRecord = GedcomSubRecordEnum.None;
                        break;
                    case "NOTE":
                        _currentRecord = GedcomRecordEnum.Note;
                        _currentNote = new Note { Id = lineArray[1] };
                        _currentSubRecord = GedcomSubRecordEnum.None;
                        break;
                }
            }
        }
Beispiel #3
0
        public void ProcessRootLevel(string[] lineArray)
        {
            switch (currentRecord)
            {
            case GedcomRecordEnum.Individual:
                gedcomIndividuals.Add(currentGedcomIndividual.Id, currentGedcomIndividual);
                break;

            case GedcomRecordEnum.Family:
                if (!gedcomFamilies.ContainsKey(currentGedcomFamily.Id))
                {
                    gedcomFamilies.Add(currentGedcomFamily.Id, currentGedcomFamily);
                }
                break;

            case GedcomRecordEnum.Note:
                if (!gedcomNotes.ContainsKey(currentGedcomNote.Id))
                {
                    gedcomNotes.Add(currentGedcomNote.Id, currentGedcomNote);
                }
                break;

            case GedcomRecordEnum.Source:
                if (!gedcomSources.ContainsKey(currentGedcomSource.Id))
                {
                    gedcomSources.Add(currentGedcomSource.Id, currentGedcomSource);
                }
                break;
            }

            if (lineArray[1] == "HEAD")
            {
                currentRecord    = GedcomRecordEnum.Header;
                currentSubRecord = GedcomSubRecordEnum.None;
            }
            else if (lineArray[1].IndexOf("@") >= 0)
            {
                switch (lineArray[2].Substring(0, 4))
                {
                case "INDI":
                    currentRecord           = GedcomRecordEnum.Individual;
                    currentGedcomIndividual = new GedcomIndividual(lineArray[1]);
                    currentSubRecord        = GedcomSubRecordEnum.None;
                    break;

                case "FAM":
                    currentRecord       = GedcomRecordEnum.Family;
                    currentGedcomFamily = new GedcomFamily(lineArray[1]);
                    currentSubRecord    = GedcomSubRecordEnum.None;
                    break;

                case "NOTE":
                    currentRecord     = GedcomRecordEnum.Note;
                    currentGedcomNote = new GedcomNote(lineArray[1]);
                    currentSubRecord  = GedcomSubRecordEnum.None;
                    break;

                case "SOUR":
                    currentRecord       = GedcomRecordEnum.Source;
                    currentGedcomSource = new GedcomSource(lineArray[1]);
                    currentSubRecord    = GedcomSubRecordEnum.None;
                    break;
                }
            }
        }