public HttpResponseMessage TryExecute <TResult>(Expression expression, out TResult result)
{
result = default(TResult);
var elementType = TypeSystem.GetElementType(typeof(TResult));
var uri = BuildRequestUri(expression, elementType);
// http://localhost:20000/products?$skip=1&$top=1
// Append optional search options.
if (this.query.Options != null)
{
var builder = new UriBuilder(uri);
HttpNameValueCollection querystring = HttpNameValueCollection.Parse(builder.Query.TrimStart('?'));
querystring.Add(this.query.Options);
builder.Query = querystring.ToString();
uri = builder.Uri;
}
#if DEBUG
Debug.WriteLine("Query uri: " + uri.AbsoluteUri);
#endif
var response = this.query.EntityClient.http.Get(uri);
if (response.IsSuccessStatusCode)
{
result = this.query.EntityClient.EntityFormatter.FromContent <TResult>(response.Content);
}
return(response);
}