public static IGedcomRecord GedcomRecordFactory(GedcomLineCollection record) { var firstLine = record.GedcomLines.FirstOrDefault(); if (firstLine == null) { return(null); } switch (GetRecordTypeFromTag(firstLine.Tag)) { case GedcomRecordType.Header: return(new HeaderRecord(record)); case GedcomRecordType.Submission: return(null); case GedcomRecordType.Family: return(null); case GedcomRecordType.Individual: return(null); case GedcomRecordType.Multimedia: return(null); case GedcomRecordType.Note: return(null); case GedcomRecordType.Repository: return(null); case GedcomRecordType.Source: return(null); case GedcomRecordType.Submitter: return(null); case GedcomRecordType.Trailer: return(null); case GedcomRecordType.Unknown: return(null); default: return(null); } }
public List <GedcomLineCollection> Read() { var document = new GedcomDocument(); var records = new List <GedcomLineCollection>(); GedcomLineCollection activeRecord = new GedcomLineCollection(); GedcomLine line; while ((line = ReadLine()) != null) { if (line.Level == 0 && activeRecord.GedcomLines.Any()) { records.Add(new GedcomLineCollection(activeRecord)); activeRecord.Clear(); } activeRecord.GedcomLines.Add(line); } return(records); }
public HeaderRecord(GedcomLineCollection lines) { }