public async Task <IEnumerable <IDictionary <string, object> > > FindEntriesAsync(string commandText, ODataFeedAnnotations annotations, CancellationToken cancellationToken) { if (IsBatchResponse) { annotations.CopyFrom(_batchResponse.Annotations); return(_batchResponse.AsEntries()); } await _session.ResolveAdapterAsync(cancellationToken); if (cancellationToken.IsCancellationRequested) { cancellationToken.ThrowIfCancellationRequested(); } var request = await _session.Adapter.GetRequestWriter(_lazyBatchWriter) .CreateGetRequestAsync(commandText, false); return(await ExecuteRequestWithResultAsync(request, cancellationToken, x => { annotations.CopyFrom(x.Annotations); return x.Entries; }, () => new[] { (IDictionary <string, object>)null })); }
public async Task <IEnumerable <T> > ReadAsCollectionAsync(ODataFeedAnnotations annotations, CancellationToken cancellationToken) { if (_responseMessage.IsSuccessStatusCode && _responseMessage.StatusCode != HttpStatusCode.NoContent && (_request.Method == RestVerbs.Get || _request.ResultRequired)) { var responseReader = _session.Adapter.GetResponseReader(); var response = await responseReader.GetResponseAsync(_responseMessage).ConfigureAwait(false); if (cancellationToken.IsCancellationRequested) { cancellationToken.ThrowIfCancellationRequested(); } if (annotations != null && response.Feed != null) { annotations.CopyFrom(response.Feed.Annotations); } var result = response.AsEntries(_session.Settings.IncludeAnnotationsInResults); return(result.Select(x => x.ToObject <T>(TypeCache))); } else { return(Array.Empty <T>()); } }
private async Task <IEnumerable <IDictionary <string, object> > > ExecuteFunctionAsync(ResolvedCommand command, ODataFeedAnnotations annotations, CancellationToken cancellationToken) { var request = await _session.Adapter.GetRequestWriter(_lazyBatchWriter) .CreateFunctionRequestAsync(command.Format(), command.Details.FunctionName, command.Details.Headers).ConfigureAwait(false); return(await ExecuteRequestWithResultAsync(request, cancellationToken, x => { var result = x.AsEntries(_session.Settings.IncludeAnnotationsInResults); if (annotations != null && x.Feed != null) { annotations.CopyFrom(x.Feed.Annotations); } return result; }, () => Array.Empty <IDictionary <string, object> >()).ConfigureAwait(false)); }
internal async Task <IEnumerable <IDictionary <string, object> > > FindEntriesAsync(FluentCommand command, ODataFeedAnnotations annotations, CancellationToken cancellationToken) { if (IsBatchResponse) { annotations.CopyFrom(_batchResponse.Annotations); return(_batchResponse.AsEntries()); } await _session.ResolveAdapterAsync(cancellationToken); if (cancellationToken.IsCancellationRequested) { cancellationToken.ThrowIfCancellationRequested(); } var commandText = await command.GetCommandTextAsync(cancellationToken); if (cancellationToken.IsCancellationRequested) { cancellationToken.ThrowIfCancellationRequested(); } return(await FindEntriesAsync(commandText, annotations, cancellationToken)); }