Exemplo n.º 1
0
        /// <summary>
        /// locates the items (ie: performs a search) using the data in the context. the context
        /// will (possibly) contain data in fields declared as inputFields in the helper contract
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AppHelperItem[] LocateItems(AppHelperContext context)
        {
            string url = BuildSearchUrl(context);

            Debug("requesting URL: " + url);
            var request = WebRequest.Create(url);

            request.Proxy             = WebRequest.GetSystemWebProxy();
            request.Proxy.Credentials = CredentialCache.DefaultCredentials;

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Debug("response URI: " + response.ResponseUri);
            Debug("response status code: " + response.StatusCode);
            Debug("content type: " + response.ContentType);
            AppHelperItem[] items;
            if (response.StatusCode == HttpStatusCode.OK)
            {
                items = ProcessSearchResponse(response.GetResponseStream());
            }
            else
            {
                // something strange happened...
                items = new ImdbAppHelperItem[0];
            }
            response.Close();
            return(items);
        }
Exemplo n.º 2
0
        private ImdbAppHelperItem[] ProcessSearchResponse(Stream stream)
        {
            XDocument         document = XDocument.Load(stream);
            var               movie    = document.Element("root").Element("movie");
            ImdbAppHelperItem item     = new ImdbAppHelperItem
            {
                Name =
                    string.Format("{0} ({1})", movie.Attribute("title").Value,
                                  movie.Attribute("year").Value),
                Value = movie.Attribute("id").Value
            };

            return(new[] { item });
        }
Exemplo n.º 3
0
        /// <summary>
        /// locates the items (ie: performs a search) using the data in the context. the context
        /// will (possibly) contain data in fields declared as inputFields in the helper contract
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AppHelperItem[] LocateItems(AppHelperContext context)
        {
            string url = BuildSearchUrl(context);

            Debug("requesting URL: " + url);
            var request = WebRequest.Create(url);
            request.Proxy = WebRequest.GetSystemWebProxy();
            request.Proxy.Credentials = CredentialCache.DefaultCredentials;

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Debug("response URI: " + response.ResponseUri);
            Debug("response status code: " + response.StatusCode);
            Debug("content type: " + response.ContentType);
            AppHelperItem[] items;
            if (response.StatusCode == HttpStatusCode.OK)
            {
                items = ProcessSearchResponse(response.GetResponseStream());
            }
            else
            {
                // something strange happened...
                items = new ImdbAppHelperItem[0];
            }
            response.Close();
            return items;
        }
Exemplo n.º 4
0
 private ImdbAppHelperItem[] ProcessSearchResponse(Stream stream)
 {
     XDocument document = XDocument.Load(stream);
     var movie = document.Element("root").Element("movie");
     ImdbAppHelperItem item = new ImdbAppHelperItem
                              {
                                  Name =
                                      string.Format("{0} ({1})", movie.Attribute("title").Value,
                                                    movie.Attribute("year").Value),
                                  Value = movie.Attribute("id").Value
                              };
     return new[] { item };
 }