SuperMap.WindowsPhone.REST.QueryByDistanceService.ProcessAsync C# (CSharp) Method

ProcessAsync() public method

${WP_REST_QueryByDistanceService_method_ProcessAsync_D}
public ProcessAsync ( QueryByDistanceParameters parameter ) : Task
parameter QueryByDistanceParameters
return Task
        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;
        }