/// <summary> /// Ends the asynchronous query request. /// </summary> /// <typeparam name="TElement">Element type of the result.</typeparam> /// <param name="source">Source object of async request.</param> /// <param name="method">async method name.</param> /// <param name="asyncResult">The asyncResult being ended.</param> /// <returns>Data service response.</returns> internal static QueryResult EndExecuteQuery <TElement>(object source, string method, IAsyncResult asyncResult) { QueryResult response = null; try { response = BaseAsyncResult.EndExecute <QueryResult>(source, method, asyncResult); } catch (InvalidOperationException ex) { response = asyncResult as QueryResult; Debug.Assert(response != null, "response != null, BaseAsyncResult.EndExecute() would have thrown a different exception otherwise."); QueryOperationResponse operationResponse = response.GetResponse <TElement>(MaterializeAtom.EmptyResults); if (operationResponse != null) { operationResponse.Error = ex; throw new DataServiceQueryException(Strings.DataServiceException_GeneralError, ex, operationResponse); } throw; } return(response); }