ALFAIRCBot.ALFAIRCBot.OnCommandWikipedia C# (CSharp) Метод

OnCommandWikipedia() приватный Метод

private OnCommandWikipedia ( string Source, string Query ) : void
Source string
Query string
Результат void
        private void OnCommandWikipedia(string Source, string Query)
        {
            try
            {
                XDocument Document;
                XElement SearchResult = null;
                string Title;
                string Description;
                string Url;
                HttpWebRequest Request;
                HttpWebResponse Response;
                Stream ResponseStream;

                IncrementStatistic("IRC_COMMAND_WIKIPEDIA");

                Request = (HttpWebRequest) WebRequest.Create(String.Format("http://en.wikipedia.org/w/api.php?action=opensearch&limit=1&namespace=0&format=xml&search={0}", Uri.EscapeDataString(Query)));

                Request.UserAgent = "ALFAIRCBot/" + Assembly.GetExecutingAssembly().GetName().Version.ToString();

                Response = (HttpWebResponse)Request.GetResponse();
                ResponseStream = Response.GetResponseStream();

                try
                {
                    Document = XDocument.Load(ResponseStream);
                }
                finally
                {
                    ResponseStream.Close();
                    Response.Close();
                }

                SearchResult = (from XElement E in Document.Descendants(WikipediaAPINamespace + "Section") select E).FirstOrDefault();

                if (SearchResult != null)
                    SearchResult = (from XElement E in SearchResult.Descendants(WikipediaAPINamespace + "Item") select E).FirstOrDefault();

                if (SearchResult == null)
                {
                    SendMessage(SendType.Message, Source, "No results.");
                    return;
                }

                Title = (string)(from XElement E in SearchResult.Descendants(WikipediaAPINamespace + "Text") select E).FirstOrDefault();
                Description = (string)(from XElement E in SearchResult.Descendants(WikipediaAPINamespace + "Description") select E).FirstOrDefault();
                Url = (string)(from XElement E in SearchResult.Descendants(WikipediaAPINamespace + "Url") select E).FirstOrDefault();

                SendMessage(SendType.Message, Source, String.Format("{0}: {1} - {2}", Title, Url, Description));
            }
            catch (Exception)
            {
                SendMessage(SendType.Message, Source, String.Format("Unable to retrieve search results for {0}.", Query));
            }
        }