public override void Process(IODataRequestMessage requestMessage, IODataResponseMessage responseMessage) { switch (this.HttpMethod) { case HttpMethod.POST: this.ProcessCreate(requestMessage.GetStream(), responseMessage); break; case HttpMethod.PUT: this.ProcessUpdate(requestMessage.GetStream(), responseMessage); break; } }
/// <summary> /// Initializes a new dummy host for the batch request. /// This host represents a single operation in the batch. /// </summary> /// <param name="absoluteServiceUri">Absolute Uri to the service.</param> /// <param name="operationMessage">The request message representing a batch operation to wrap.</param> /// <param name="contentId">Content id for the given operation host.</param> /// <param name="writer">ODataBatchWriter instance.</param> /// <param name="odataMaxVersion">OData-MaxVersion header on the batch request. If the OData-MaxVersion header is not specified in the current operation, we default to the MaxDSV from the batch level.</param> internal BatchServiceHost(Uri absoluteServiceUri, IODataRequestMessage operationMessage, string contentId, ODataBatchWriter writer, Version odataMaxVersion) : this(writer) { Debug.Assert(absoluteServiceUri != null && absoluteServiceUri.IsAbsoluteUri, "absoluteServiceUri != null && absoluteServiceUri.IsAbsoluteUri"); Debug.Assert(operationMessage != null, "operationMessage != null"); this.absoluteServiceUri = absoluteServiceUri; this.absoluteRequestUri = RequestUriProcessor.GetAbsoluteUriFromReference(operationMessage.Url, absoluteServiceUri); this.requestHttpMethod = operationMessage.Method; this.contentId = contentId; foreach (KeyValuePair <string, string> header in operationMessage.Headers) { this.requestHeaders.Add(header.Key, header.Value); } // If the MaxDSV header is not specified in the current operation, we default to the MaxDSV from the batch level. if (string.IsNullOrEmpty(this.requestHeaders[XmlConstants.HttpODataMaxVersion])) { Debug.Assert(odataMaxVersion != null, "odataMaxVersion != null"); this.requestHeaders[XmlConstants.HttpODataMaxVersion] = odataMaxVersion.ToString(); } this.requestStream = operationMessage.GetStream(); }
public async ValueTask <(IEdmEntitySet entitySet, ODataResource resource)> CreateEntryAsync(IODataRequestMessage requestMessage) { if (requestMessage.Method == ODataConstants.MethodDelete) { return(ReadEntityFromUrl(requestMessage.Url)); } String contentType = requestMessage.GetHeader(ODataConstants.ContentTypeHeader) ?? OeRequestHeaders.JsonDefault.ContentType; using (Stream stream = requestMessage.GetStream()) return(await ReadEntityFromStreamAsync(stream, requestMessage.Url, contentType).ConfigureAwait(false)); }
internal BatchServiceHost(Uri absoluteServiceUri, IODataRequestMessage operationMessage, string contentId, ODataBatchWriter writer, Version maxDataServiceVersion, Version minDataServiceVersion, Version dataServiceVersion) : this(writer) { this.absoluteServiceUri = absoluteServiceUri; this.absoluteRequestUri = RequestUriProcessor.GetAbsoluteUriFromReference(operationMessage.Url, absoluteServiceUri, dataServiceVersion); this.requestHttpMethod = operationMessage.Method; this.contentId = contentId; foreach (KeyValuePair <string, string> pair in operationMessage.Headers) { this.requestHeaders.Add(pair.Key, pair.Value); } if (string.IsNullOrEmpty(this.requestHeaders["MaxDataServiceVersion"])) { this.requestHeaders["MaxDataServiceVersion"] = maxDataServiceVersion.ToString(); } if (string.IsNullOrEmpty(this.requestHeaders["MinDataServiceVersion"])) { this.requestHeaders["MinDataServiceVersion"] = minDataServiceVersion.ToString(); } this.requestStream = operationMessage.GetStream(); }
internal BatchServiceHost(Uri absoluteServiceUri, IODataRequestMessage operationMessage, string contentId, ODataBatchWriter writer, Version maxDataServiceVersion, Version minDataServiceVersion, Version dataServiceVersion) : this(writer) { this.absoluteServiceUri = absoluteServiceUri; this.absoluteRequestUri = RequestUriProcessor.GetAbsoluteUriFromReference(operationMessage.Url, absoluteServiceUri, dataServiceVersion); this.requestHttpMethod = operationMessage.Method; this.contentId = contentId; foreach (KeyValuePair<string, string> pair in operationMessage.Headers) { this.requestHeaders.Add(pair.Key, pair.Value); } if (string.IsNullOrEmpty(this.requestHeaders["MaxDataServiceVersion"])) { this.requestHeaders["MaxDataServiceVersion"] = maxDataServiceVersion.ToString(); } if (string.IsNullOrEmpty(this.requestHeaders["MinDataServiceVersion"])) { this.requestHeaders["MinDataServiceVersion"] = minDataServiceVersion.ToString(); } this.requestStream = operationMessage.GetStream(); }
/// <summary> /// Initializes a new dummy host for the batch request. /// This host represents a single operation in the batch. /// </summary> /// <param name="absoluteServiceUri">Absolute Uri to the service.</param> /// <param name="operationMessage">The request message representing a batch operation to wrap.</param> /// <param name="contentId">Content id for the given operation host.</param> /// <param name="writer">ODataBatchWriter instance.</param> /// <param name="odataMaxVersion">OData-MaxVersion header on the batch request. If the OData-MaxVersion header is not specified in the current operation, we default to the MaxDSV from the batch level.</param> internal BatchServiceHost(Uri absoluteServiceUri, IODataRequestMessage operationMessage, string contentId, ODataBatchWriter writer, Version odataMaxVersion) : this(writer) { Debug.Assert(absoluteServiceUri != null && absoluteServiceUri.IsAbsoluteUri, "absoluteServiceUri != null && absoluteServiceUri.IsAbsoluteUri"); Debug.Assert(operationMessage != null, "operationMessage != null"); this.absoluteServiceUri = absoluteServiceUri; this.absoluteRequestUri = RequestUriProcessor.GetAbsoluteUriFromReference(operationMessage.Url, absoluteServiceUri); this.requestHttpMethod = operationMessage.Method; this.contentId = contentId; foreach (KeyValuePair<string, string> header in operationMessage.Headers) { this.requestHeaders.Add(header.Key, header.Value); } // If the MaxDSV header is not specified in the current operation, we default to the MaxDSV from the batch level. if (string.IsNullOrEmpty(this.requestHeaders[XmlConstants.HttpODataMaxVersion])) { Debug.Assert(odataMaxVersion != null, "odataMaxVersion != null"); this.requestHeaders[XmlConstants.HttpODataMaxVersion] = odataMaxVersion.ToString(); } this.requestStream = operationMessage.GetStream(); }