示例#1
0
        private void SetupMediaResourceRequest(ODataRequestMessageWrapper mediaResourceRequest, DataServiceSaveStream saveStream, string etag)
        {
            IEnumerable <string> keys;

            base.mediaResourceRequestStream = saveStream.Stream;
            WebUtil.ApplyHeadersToRequest(saveStream.Args.Headers, mediaResourceRequest, true);
            Dictionary <string, string> headers = saveStream.Args.Headers;

            if (headers.ContainsKey("Accept"))
            {
                keys = new List <string>(headers.Count - 1);
                foreach (string str in headers.Keys)
                {
                    if (str != "Accept")
                    {
                        ((List <string>)keys).Add(str);
                    }
                }
            }
            else
            {
                keys = headers.Keys;
            }
            mediaResourceRequest.AddHeadersToReset(keys);
            if (etag != null)
            {
                mediaResourceRequest.SetHeader("If-Match", etag);
                mediaResourceRequest.AddHeadersToReset("If-Match");
            }
        }
示例#2
0
        /// <summary>
        /// Fires the WritingRequest event on the <paramref name="requestInfo"/> instance.
        /// </summary>
        /// <param name="requestHeaders">Request Headers</param>
        /// <param name="readableStream">A stream which can be read.</param>
        /// <param name="isBatchPart">Boolean flag indicating if this request is part of a batch request..</param>
        /// <param name="requestInfo">Request information to help fire events on the context.</param>
        /// <param name="requestMessage">The request message to apply the headers to.</param>
        /// <param name="ignoreAcceptHeader">If set to true the Accept header will be ignored.</param>
        /// <returns>A stream containing the content of the request/response.</returns>
        internal static Stream FireWritingRequest(HeaderCollection requestHeaders, Stream readableStream, bool isBatchPart, RequestInfo requestInfo, IODataRequestMessage requestMessage, bool ignoreAcceptHeader)
        {
            ReadingWritingHttpMessageEventArgs args = new ReadingWritingHttpMessageEventArgs(requestHeaders, readableStream, isBatchPart);
            var rewrittenArgs = requestInfo.FireWritingRequestEvent(args);

            WebUtil.ApplyHeadersToRequest(rewrittenArgs.HeaderCollection, requestMessage, true);
            return(rewrittenArgs.Content);
        }