private RoyalGazetteList DoParse(TextReader reader)
        {
            RoyalGazetteList result      = new RoyalGazetteList();
            String           currentLine = String.Empty;
            int           dataState      = -1;
            StringBuilder entryData      = new StringBuilder();

            try
            {
                while ((currentLine = reader.ReadLine()) != null)
                {
                    if (currentLine.Contains(PageStart))
                    {
                        String temp = currentLine.Substring(currentLine.LastIndexOf(PageStart) + PageStart.Length, 3).Trim();
                        _numberOfPages = Convert.ToInt32(temp);
                    }
                    else if (currentLine.StartsWith(EntryStart))
                    {
                        if (entryData.Length > 0)
                        {
                            var current = ParseSingeItem(entryData.ToString());
                            if (current != null)
                            {
                                result.Add(current);
                            }
                            entryData.Remove(0, entryData.Length);
                        }
                        dataState++;
                    }
                    else if (dataState >= 0)
                    {
                        entryData.Append(currentLine.Trim() + " ");
                    }
                }
                if (entryData.Length > 0)
                {
                    var current = ParseSingeItem(entryData.ToString());
                    if (current != null)
                    {
                        result.Add(current);
                    }
                }
            }
            catch (IOException)
            {
            }

            return(result);
        }
Beispiel #2
0
 internal static void ParseNode(XmlNode iNode, RoyalGazetteList ioList)
 {
     if (iNode.HasChildNodes)
     {
         foreach (XmlNode lChildNode in iNode.ChildNodes)
         {
             if (lChildNode.Name == "year")
             {
                 ParseNode(lChildNode, ioList);
             }
             else if (lChildNode.Name == "decade")
             {
                 ParseNode(lChildNode, ioList);
             }
             else if (lChildNode.Name == "month")
             {
                 ParseNode(lChildNode, ioList);
             }
             else if (lChildNode.Name == "entry")
             {
                 ioList.Add(RoyalGazette.Load(lChildNode));
             }
         }
     }
 }
Beispiel #3
0
        public RoyalGazetteList FilteredList(RoyalGazetteList iFilter)
        {
            var lResult = new RoyalGazetteList();

            foreach (RoyalGazette lEntry in this)
            {
                if (iFilter == null)
                {
                    lResult.Add(lEntry);
                }
                else if (!iFilter.Contains(lEntry))
                {
                    lResult.Add(lEntry);
                }
            }
            return(lResult);
        }
Beispiel #4
0
        public RoyalGazetteList AllAboutEntity(Int32 iGeocode, Boolean iIncludeSubEntities)
        {
            var retval = new RoyalGazetteList();

            foreach (RoyalGazette lEntry in this)
            {
                if (lEntry.IsAboutGeocode(iGeocode, iIncludeSubEntities))
                {
                    retval.Add(lEntry);
                }
            }
            return(retval);
        }
Beispiel #5
0
        private RoyalGazetteList CurrentSelection()
        {
            RoyalGazetteList retval = new RoyalGazetteList();

            foreach (DataGridViewRow lRow in grid.SelectedRows)
            {
                DataRowView lRowView = lRow.DataBoundItem as DataRowView;
                // Debug.Assert(lRowView != null);

                DataRow lDataRow = lRowView.Row;
                // Debug.Assert(lDataRow != null);

                RoyalGazette lGazette = lDataRow["Title"] as RoyalGazette;
                if (lGazette != null)
                {
                    retval.Add(lGazette);
                }
            }
            return(retval);
        }
Beispiel #6
0
        public RoyalGazetteList FindDuplicates()
        {
            RoyalGazetteList lResult = new RoyalGazetteList();
            RoyalGazetteList lTemp   = new RoyalGazetteList();

            lTemp.AddRange(this);
            URIComparer lComparer = new URIComparer();

            lTemp.Sort(lComparer.Compare);
            int lIndex = 0;

            while (lIndex < lTemp.Count)
            {
                RoyalGazette lEntry = lTemp[lIndex];
                lTemp.RemoveAt(lIndex);
                int lFound = lTemp.BinarySearch(lEntry, lComparer);
                if (lFound >= 0)
                {
                    lResult.Add(lEntry);
                }
            }
            return(lResult);
        }
        private RoyalGazetteList DoParse(TextReader reader)
        {
            RoyalGazetteList result           = new RoyalGazetteList();
            String           currentLine      = String.Empty;
            Int32            dataState        = -1;
            Int32            currentLineIndex = 0;
            StringBuilder    entryData        = new StringBuilder();

            try
            {
                while ((currentLine = reader.ReadLine()) != null)
                {
                    currentLineIndex++;
                    currentLine = currentLine.Trim();
                    if (!String.IsNullOrWhiteSpace(currentLine))
                    {
                        if (currentLine.Contains(PageStart))
                        {
                            String temp = currentLine.Substring(currentLine.LastIndexOf(PageStart) + PageStart.Length + 1, 6);
                            temp           = temp.Substring(0, temp.IndexOf(' ')).Trim();
                            _numberOfPages = Convert.ToInt32(temp);
                            if (_numberOfPages > 100)
                            {
                                _numberOfPages = 1;  // something terrible went wrong with the search
                            }
                        }
                        else if (currentLine.StartsWith(EntryStart))
                        {
                            if (entryData.Length > 0)
                            {
                                var current = ParseSingeItem(entryData.ToString());
                                if (current != null)
                                {
                                    result.Add(current);
                                }
                                else
                                {
                                    dataState++;
                                    // failed to parse!
                                }
                                entryData.Remove(0, entryData.Length);
                            }
                            dataState++;
                        }
                        else if (dataState >= 0)
                        {
                            entryData.Append(currentLine.Trim() + " ");
                        }
                    }
                }
                if (entryData.Length > 0)
                {
                    var current = ParseSingeItem(entryData.ToString());
                    if (current != null)
                    {
                        result.Add(current);
                    }
                }
            }
            catch (IOException)
            {
            }

            return(result);
        }