Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }