Ejemplo n.º 1
0
        public QueryResult Retrieve(Query query)
        {
            var doc = new XmlDocument();

            try
            {
                Stream stream;
                if (_connector != null)
                {
                    stream = _connector.GetData(new QueryURLBuilder(query).ToString());
                }
                else
                {
                    if (query.IsHistorical)
                    {
                        _v1Connector.UseHistoryApi();
                    }
                    else
                    {
                        _v1Connector.UseDataApi();
                    }
                    stream = _v1Connector.GetData(new QueryURLBuilder(query, true).ToString());
                }
                doc.Load(stream);
                stream.Dispose();
            }
            catch (WebException ex)
            {
                //if we get a 404, return an empty query result otherwise throw the exception
                if ((ex.Response is HttpWebResponse && ((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound) || ex.Status.ToString() == "404")
                {
                    return(GetEmptyQueryResult(query));
                }

                throw;
            }

            return(ParseQueryResult(doc.DocumentElement, query));
        }
 public IFluentQueryBuilder Query(string from)
 {
     _instance.UseDataApi();
     return(new Services(Build()).Query(from));
 }