/// <summary> /// /// </summary> /// <param name="buffer"></param> /// <returns>prevId, identifier of person</returns> private int ParseBuffer(GDMLines buffer) { int prevId = 0; try { if (buffer.IsEmpty()) { return(prevId); } string s = buffer[0]; string personId = IsPersonLine(s); if (!string.IsNullOrEmpty(personId)) { fLog.Add("> " + fLangMan.LS(ILS.LSID_PersonParsed) + " \"" + personId + "\""); int selfId = 0; GDMIndividualRecord curPerson = ParsePerson(buffer, s, ref selfId); if (NumbersType == PersonNumbersType.pnKonovalov && selfId - prevId > 1) { fLog.Add(">>>> " + fLangMan.LS(ILS.LSID_ParseError_LineSeq)); } prevId = selfId; CheckBuffer(buffer, curPerson); } } catch (Exception ex) { Logger.WriteError("Importer.ParseBuffer()", ex); throw; } return(prevId); }
protected bool IsMatchesMask(GDMLines strList, string mask) { if (strList == null || strList.IsEmpty() || string.IsNullOrEmpty(mask)) { return(false); } if (mask == "*") { return(true); } if (fMask != mask) { fMask = mask; fSimpleMask = GetSimpleMask(fMask); if (fSimpleMask == null) { fRegexMask = new Regex(GKUtils.PrepareMask(fMask), GKUtils.RegexOpts); } } for (int i = 0; i < strList.Count; i++) { string str = strList[i]; bool res; if (fSimpleMask != null) { res = str.IndexOf(fSimpleMask, StringComparison.OrdinalIgnoreCase) >= 0; } else { res = fRegexMask.IsMatch(str, 0); } if (res) { return(true); } } return(false); }
private void CheckBuffer(GDMLines buffer, GDMIndividualRecord curPerson) { if (buffer.IsEmpty()) { return; } if (curPerson != null) { CheckSpouses(buffer, curPerson); } GDMNoteRecord noteRec = fTree.CreateNote(); noteRec.Lines.Assign(buffer); if (curPerson != null) { curPerson.AddNote(noteRec); } buffer.Clear(); }