예제 #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;
                }
            }
        }
예제 #2
0
        private void ProcessLevel1(string[] lineArray)
        {
            var s1 = lineArray[1];
            var s2 = lineArray.Length > 2 ? lineArray[2] : "";

            if (_currentRecord == GedcomRecordEnum.Header)
            {
                switch (s1)
                {
                case "SOUR":
                    _header.Source    = s2;
                    _currentSubRecord = GedcomSubRecordEnum.HeaderSource;
                    break;

                case "DEST":
                    _header.Destination = s2;
                    _currentSubRecord   = GedcomSubRecordEnum.None;
                    break;

                case "DATE":
                    _header.Date      = s2;
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "FILE":
                    _header.File      = s2;
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "CHAR":
                    _header.CharacterEncoding = s2;
                    _currentSubRecord         = GedcomSubRecordEnum.None;
                    break;

                case "GEDC":
                    _currentSubRecord = GedcomSubRecordEnum.HeaderGedcom;
                    break;
                }
            }
            else if (_currentRecord == GedcomRecordEnum.Individual)
            {
                switch (s1)
                {
                case "_UID":
                    _currentIndividual.Uid = s2;
                    _currentSubRecord      = GedcomSubRecordEnum.None;
                    break;

                case "NAME":
                    _currentIndividual.GivenName = s2;
                    _currentSubRecord            = GedcomSubRecordEnum.IndividualName;
                    break;

                case "SEX":
                    _currentIndividual.Sex = s2;
                    _currentSubRecord      = GedcomSubRecordEnum.None;
                    break;

                case "BIRT":
                    _currentSubRecord = GedcomSubRecordEnum.IndividualBirth;
                    break;

                case "DEAT":
                    _currentSubRecord = GedcomSubRecordEnum.IndividualDeath;
                    break;

                case "OCCU":
                    _currentIndividual.Occupation = s2;
                    _currentSubRecord             = GedcomSubRecordEnum.None;
                    break;

                case "DSCR":
                    _currentIndividual.Description = s2;
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "NATI":
                    _currentIndividual.Nationality = s2;
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "NOTE":
                    _currentIndividual.Notes.Add(s2);
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;
                }
            }
            else if (_currentRecord == GedcomRecordEnum.Family)
            {
                switch (s1)
                {
                case "_UID":
                    _currentFamily.Uid = s2;
                    _currentSubRecord  = GedcomSubRecordEnum.None;
                    break;

                case "HUSB":
                    _currentFamily.HusbandId = s2;
                    _currentSubRecord        = GedcomSubRecordEnum.None;
                    break;

                case "WIFE":
                    _currentFamily.WifeId = s2;
                    _currentSubRecord     = GedcomSubRecordEnum.None;
                    break;

                case "CHIL":
                    _currentFamily.Children.Add(s2);
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "MARR":
                    _currentSubRecord = GedcomSubRecordEnum.FamilyMarriage;
                    break;

                case "NOTE":
                    _currentFamily.Notes.Add(s2);
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;
                }
            }
            else if (_currentRecord == GedcomRecordEnum.Note)
            {
                switch (s1)
                {
                case "CONC":
                    _currentNote.Text = s2;
                    _currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "CONT":
                    _currentNote.Text += s2;
                    _currentSubRecord  = GedcomSubRecordEnum.None;
                    break;
                }
            }
        }
예제 #3
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;
                }
            }
        }
예제 #4
0
 private void ProcessLevel1(string[] lineArray)
 {
     var s1 = lineArray[1];
     var s2 = lineArray.Length > 2 ? lineArray[2] : "";
     if (_currentRecord == GedcomRecordEnum.Header)
     {
         switch (s1)
         {
             case "SOUR":
                 _header.Source = s2;
                 _currentSubRecord = GedcomSubRecordEnum.HeaderSource;
                 break;
             case "DEST":
                 _header.Destination = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "DATE":
                 _header.Date = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "FILE":
                 _header.File = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "CHAR":
                 _header.CharacterEncoding = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "GEDC":
                 _currentSubRecord = GedcomSubRecordEnum.HeaderGedcom;
                 break;
         }
     }
     else if (_currentRecord == GedcomRecordEnum.Individual)
     {
         switch (s1)
         {
             case "_UID":
                 _currentIndividual.Uid = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "NAME":
                 _currentIndividual.GivenName = s2;
                 _currentSubRecord = GedcomSubRecordEnum.IndividualName;
                 break;
             case "SEX":
                 _currentIndividual.Sex = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "BIRT":
                 _currentSubRecord = GedcomSubRecordEnum.IndividualBirth;
                 break;
             case "DEAT":
                 _currentSubRecord = GedcomSubRecordEnum.IndividualDeath;
                 break;
             case "OCCU":
                 _currentIndividual.Occupation = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "DSCR":
                 _currentIndividual.Description = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "NATI":
                 _currentIndividual.Nationality = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "NOTE":
                 _currentIndividual.Notes.Add(s2);
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
         }
     }
     else if (_currentRecord == GedcomRecordEnum.Family)
     {
         switch (s1)
         {
             case "_UID":
                 _currentFamily.Uid = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "HUSB":
                 _currentFamily.HusbandId = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "WIFE":
                 _currentFamily.WifeId = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "CHIL":
                 _currentFamily.Children.Add(s2);
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "MARR":
                 _currentSubRecord = GedcomSubRecordEnum.FamilyMarriage;
                 break;
             case "NOTE":
                 _currentFamily.Notes.Add(s2);
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
         }
     }
     else if (_currentRecord == GedcomRecordEnum.Note)
     {
         switch (s1)
         {
             case "CONC":
                 _currentNote.Text = s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
             case "CONT":
                 _currentNote.Text += s2;
                 _currentSubRecord = GedcomSubRecordEnum.None;
                 break;
         }
     }
 }
예제 #5
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;
                }
            }
        }
예제 #6
0
        public void ProcessLevel1(string[] lineArray)
        {
            if (currentRecord == GedcomRecordEnum.Header)
            {
                switch (lineArray[1])
                {
                case "SOUR":
                    gedcomHeader.Source = lineArray[2];
                    currentSubRecord    = GedcomSubRecordEnum.HeaderSource;
                    break;

                case "DEST":
                    gedcomHeader.Destination = lineArray[2];
                    currentSubRecord         = GedcomSubRecordEnum.None;
                    break;

                case "DATE":
                    gedcomHeader.Date = lineArray[2];
                    currentSubRecord  = GedcomSubRecordEnum.None;
                    break;

                case "FILE":
                    gedcomHeader.File = lineArray[2];
                    currentSubRecord  = GedcomSubRecordEnum.None;
                    break;

                case "CHAR":
                    gedcomHeader.CharacterEncoding = lineArray[2];
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "GEDC":
                    currentSubRecord = GedcomSubRecordEnum.HeaderGedcom;
                    break;
                }
            }
            else if (currentRecord == GedcomRecordEnum.Individual)
            {
                switch (lineArray[1])
                {
                case "NAME":
                    //currentGedcomIndividual.GivenName = lineArray[2];
                    currentSubRecord = GedcomSubRecordEnum.IndividualName;
                    break;

                case "SEX":
                    currentGedcomIndividual.Sex = lineArray[2];
                    currentSubRecord            = GedcomSubRecordEnum.None;
                    break;

                case "BIRT":
                    currentSubRecord = GedcomSubRecordEnum.IndividualBirth;
                    break;

                case "DEAT":
                    currentSubRecord = GedcomSubRecordEnum.IndividualDeath;
                    break;

                case "OCCU":
                    currentGedcomIndividual.Occupation = lineArray[2];
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "DSCR":
                    if (lineArray.Length > 2)
                    {
                        currentGedcomIndividual.Description = lineArray[2];
                    }
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "NATI":
                    currentGedcomIndividual.Nationality = lineArray[2];
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "NOTE":
                    currentGedcomIndividual.Notes.Add(lineArray[2]);
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "SOUR":
                    currentGedcomIndividual.Sources.Add(lineArray[2]);
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;
                }
            }
            else if (currentRecord == GedcomRecordEnum.Family)
            {
                switch (lineArray[1])
                {
                case "HUSB":
                    currentGedcomFamily.HusbandId = lineArray[2];
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "WIFE":
                    currentGedcomFamily.WifeId = lineArray[2];
                    currentSubRecord           = GedcomSubRecordEnum.None;
                    break;

                case "CHIL":
                    currentGedcomFamily.Children.Add(lineArray[2]);
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "MARR":
                    currentSubRecord = GedcomSubRecordEnum.FamilyMarriage;
                    break;

                case "NOTE":
                    currentGedcomFamily.Notes.Add(lineArray[2]);
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;

                case "SOUR":
                    currentGedcomFamily.Sources.Add(lineArray[2]);
                    currentSubRecord = GedcomSubRecordEnum.None;
                    break;
                }
            }
            else if (currentRecord == GedcomRecordEnum.Note)
            {
                switch (lineArray[1])
                {
                case "CONC":
                    currentGedcomNote.Text = lineArray[2];
                    currentSubRecord       = GedcomSubRecordEnum.None;
                    break;

                case "CONT":
                    currentGedcomNote.Text += lineArray[2];
                    currentSubRecord        = GedcomSubRecordEnum.None;
                    break;
                }
            }
            else if (currentRecord == GedcomRecordEnum.Source)
            {
                switch (lineArray[1])
                {
                case "TITL":
                    currentGedcomSource.Text = lineArray[2];
                    currentSubRecord         = GedcomSubRecordEnum.None;
                    break;

                case "CONT":
                    currentGedcomSource.Text += lineArray[2];
                    currentSubRecord          = GedcomSubRecordEnum.None;
                    break;
                }
            }
        }