// Startes the search by sending Query to MSDN
        protected override void OnStartSearch()
        {
            var webQuery = this.GetWebQuery(this.SearchQuery);

            try
            {
                //parser code to parse through RSS results
                var xmlDocument = new XmlDocument();
                xmlDocument.Load(webQuery);
                var root = xmlDocument.DocumentElement;

                //each item/entry is a unique result
                var entries = root.GetElementsByTagName("item");
                if (entries.Count == 0)
                    entries = root.GetElementsByTagName("entry");
                
                foreach (var node in entries)
                {
                    var entry = node as XmlElement;
                    if (entry != null)
                    {
                        string title = null;
                        string url = null;

                        //title tag provides result title
                        var titleNodes = entry.GetElementsByTagName("title");
                        if (titleNodes.Count > 0)
                        {
                            title = (titleNodes[0] as XmlElement).InnerText;
                        }

                        //link / url / id tag provides the URL linking the result string to its page
                        var linkNodes = entry.GetElementsByTagName("link");
                        if (linkNodes.Count == 0)
                            linkNodes = entry.GetElementsByTagName("url");
                        if (linkNodes.Count == 0)
                            linkNodes = entry.GetElementsByTagName("id");

                        if (linkNodes.Count > 0)
                        {
                            url = (linkNodes[0] as XmlElement).Attributes["href"].InnerText;
                        }

                        if (title != null && url != null)
                        {
                            var result = new NugetSearchResult(title, url, this.provider);

                            this.SearchCallback.ReportResult(this, result);
                        }
                    }
                }

                this.SearchCallback.ReportComplete(this, (uint)entries.Count);
            }
            catch (Exception)
            {
            }            
            
            //base.OnStartSearch();
        }
Пример #2
0
        // Startes the search by sending Query to MSDN
        protected override void OnStartSearch()
        {
            var webQuery = this.GetWebQuery(this.SearchQuery);

            try
            {
                //parser code to parse through RSS results
                var xmlDocument = new XmlDocument();
                xmlDocument.Load(webQuery);
                var root = xmlDocument.DocumentElement;

                //each item/entry is a unique result
                var entries = root.GetElementsByTagName("item");
                if (entries.Count == 0)
                {
                    entries = root.GetElementsByTagName("entry");
                }

                foreach (var node in entries)
                {
                    var entry = node as XmlElement;
                    if (entry != null)
                    {
                        string title = null;
                        string url   = null;

                        //title tag provides result title
                        var titleNodes = entry.GetElementsByTagName("title");
                        if (titleNodes.Count > 0)
                        {
                            title = (titleNodes[0] as XmlElement).InnerText;
                        }

                        //link / url / id tag provides the URL linking the result string to its page
                        var linkNodes = entry.GetElementsByTagName("link");
                        if (linkNodes.Count == 0)
                        {
                            linkNodes = entry.GetElementsByTagName("url");
                        }
                        if (linkNodes.Count == 0)
                        {
                            linkNodes = entry.GetElementsByTagName("id");
                        }

                        if (linkNodes.Count > 0)
                        {
                            url = (linkNodes[0] as XmlElement).Attributes["href"].InnerText;
                        }

                        if (title != null && url != null)
                        {
                            var result = new NugetSearchResult(title, url, this.provider);

                            this.SearchCallback.ReportResult(this, result);
                        }
                    }
                }

                this.SearchCallback.ReportComplete(this, (uint)entries.Count);
            }
            catch (Exception)
            {
            }

            //base.OnStartSearch();
        }