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; } } }
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; } } }
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; } } }
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; } } }