public async Task<QueryResult> ProcessAsync(QueryByDistanceParameters parameter)
{
if (parameter == null)
{
throw new ArgumentNullException(ExceptionStrings.ArgumentIsNull);
}
if (string.IsNullOrEmpty(this.Url))
{
throw new InvalidOperationException(ExceptionStrings.InvalidUrl);
}
if (!base.Url.EndsWith("/"))
{
base.Url += '/';
}
base.Url += string.Format("queryResults.json?returnContent={0}&returnCustomResult={1}", parameter.ReturnContent.ToString(CultureInfo.InvariantCulture).ToLower(), parameter.ReturnCustomResult.ToString(CultureInfo.InvariantCulture).ToLower());
if (parameter.IsNearest)
{
parameter.QueryMode = QueryMode.FindNearest;
}
else
{
parameter.QueryMode = QueryMode.DistanceQuery;
}
string jsonParam = JsonConvert.SerializeObject(parameter);
var resultStr = await base.SubmitRequest(base.Url, HttpRequestMethod.POST, jsonParam);
QueryResult result = null;
if (!parameter.ReturnContent)
{
result = new QueryResult();
result.ResourceInfo = JsonConvert.DeserializeObject<ResourceInfo>(resultStr);
}
else
{
result = JsonConvert.DeserializeObject<QueryResult>(resultStr);
}
LastResult = result;
return result;
}