internal void BatchRequest() { ODataRequestMessageWrapper request = this.GenerateBatchRequest(); if (request != null) { request.SetContentLengthHeader(); MemoryStream cachedRequestStream = request.CachedRequestStream; DataServiceContext source = (DataServiceContext)base.Source; using (Stream stream2 = WebUtil.GetRequestStream(request, source)) { byte[] buffer = cachedRequestStream.GetBuffer(); int position = (int)cachedRequestStream.Position; int count = ((int)cachedRequestStream.Length) - position; stream2.Write(buffer, position, count); } try { base.batchResponse = WebUtil.GetResponse(request, source, false); } catch (WebException exception) { WebUtil.GetHttpWebResponse(exception, ref this.batchResponse); throw; } finally { if (base.batchResponse != null) { this.responseStream = WebUtil.GetResponseStream(base.batchResponse, source); } } } }
internal void CreateNextChange() { ODataRequestMessageWrapper requestMessage = null; do { HttpWebResponse response = null; try { requestMessage = this.CreateNextRequest(); if (((requestMessage != null) || (base.entryIndex < base.ChangedEntries.Count)) && !base.ChangedEntries[base.entryIndex].ContentGeneratedForSave) { BaseAsyncResult.ContentStream stream = this.CreateNonBatchChangeData(base.entryIndex, requestMessage); if ((stream != null) && (stream.Stream != null)) { if (stream.IsKnownMemoryStream) { requestMessage.SetContentLengthHeader(); } using (Stream stream2 = WebUtil.GetRequestStream(requestMessage, (DataServiceContext)base.Source)) { int num; byte[] buffer = new byte[0x10000]; do { num = stream.Stream.Read(buffer, 0, buffer.Length); if (num > 0) { stream2.Write(buffer, 0, num); } }while (num > 0); } } response = WebUtil.GetResponse(requestMessage, (DataServiceContext)base.Source, false); this.HandleOperationResponse(response); base.HandleOperationResponseHeaders(response.StatusCode, WebUtil.WrapResponseHeaders(response)); this.HandleOperationResponseData(response); base.perRequest = null; } } catch (InvalidOperationException exception) { WebUtil.GetHttpWebResponse(exception, ref response); this.HandleOperationException(exception, response); } finally { if (response != null) { response.Close(); } } }while ((base.entryIndex < base.ChangedEntries.Count) && !base.IsCompletedInternally); }
internal DataServiceStreamResponse Execute() { try { HttpWebResponse webResponse = null; webResponse = WebUtil.GetResponse(this.requestMessage, (DataServiceContext)base.Source, true); this.SetHttpWebResponse(webResponse); } catch (Exception exception) { base.HandleFailure(exception); throw; } finally { base.SetCompleted(); this.CompletedRequest(); } if (base.Failure != null) { throw base.Failure; } return(this.End()); }
internal void ExecuteQuery(DataServiceContext context) { try { if ((this.requestContentStream != null) && (this.requestContentStream.Stream != null)) { if (this.requestContentStream.IsKnownMemoryStream) { this.Request.SetContentLengthHeader(); } using (Stream stream = WebUtil.GetRequestStream(this.Request, context)) { int num; byte[] buffer = new byte[0x10000]; do { num = this.requestContentStream.Stream.Read(buffer, 0, buffer.Length); if (num > 0) { stream.Write(buffer, 0, num); } }while (num > 0); } } HttpWebResponse response = null; response = WebUtil.GetResponse(this.Request, context, true); this.SetHttpWebResponse(Util.NullCheck <HttpWebResponse>(response, InternalError.InvalidGetResponse)); if (HttpStatusCode.NoContent != this.StatusCode) { using (Stream stream2 = WebUtil.GetResponseStream(this.httpWebResponse, context)) { if (stream2 != null) { Stream asyncResponseStreamCopy = this.GetAsyncResponseStreamCopy(); this.outputResponseStream = asyncResponseStreamCopy; byte[] asyncResponseStreamCopyBuffer = this.GetAsyncResponseStreamCopyBuffer(); long num2 = WebUtil.CopyStream(stream2, asyncResponseStreamCopy, ref asyncResponseStreamCopyBuffer); if (this.responseStreamOwner) { if (0L == num2) { this.outputResponseStream = null; } else if (asyncResponseStreamCopy.Position < asyncResponseStreamCopy.Length) { ((MemoryStream)asyncResponseStreamCopy).SetLength(asyncResponseStreamCopy.Position); } } this.PutAsyncResponseStreamCopyBuffer(asyncResponseStreamCopyBuffer); } } } } catch (Exception exception) { base.HandleFailure(exception); throw; } finally { base.SetCompleted(); this.CompletedRequest(); } if (base.Failure != null) { throw base.Failure; } }