Ejemplo n.º 1
0
        private static async Task <ODataResponse> ODataProcessRequestAsync(string resource, string queryString,
                                                                           string requestBodyJson, string httpMethod, IConfiguration config)
        {
            var httpContext = CreateHttpContext(resource, queryString);
            var request     = httpContext.Request;

            request.Method      = httpMethod;
            request.Path        = resource;
            request.QueryString = new QueryString(queryString);
            if (requestBodyJson != null)
            {
                request.Body = CreateRequestStream(requestBodyJson);
            }

            httpContext.Response.Body = new MemoryStream();

            var odata        = new ODataMiddleware(null, config, null);
            var odataRequest = ODataRequest.Parse(httpContext);
            await odata.ProcessRequestAsync(httpContext, odataRequest).ConfigureAwait(false);

            var responseOutput = httpContext.Response.Body;

            responseOutput.Seek(0, SeekOrigin.Begin);
            string output;

            using (var reader = new StreamReader(responseOutput))
                output = await reader.ReadToEndAsync().ConfigureAwait(false);

            return(new ODataResponse {
                Result = output, StatusCode = httpContext.Response.StatusCode
            });
        }
Ejemplo n.º 2
0
        internal static async Task <HttpContext> ODataProcessRequestEmptyResponseAsync(string resource, string queryString,
                                                                                       string requestBodyJson, string httpMethod, IConfiguration config)
        {
            var httpContext = CreateHttpContext(resource, queryString);
            var request     = httpContext.Request;

            request.Method      = httpMethod;
            request.Path        = resource;
            request.QueryString = new QueryString(queryString);
            if (requestBodyJson != null)
            {
                request.Body = CreateRequestStream(requestBodyJson);
            }

            //httpContext.Response.Body = new MemoryStream();

            var odata        = new ODataMiddleware(null, config, null);
            var odataRequest = ODataRequest.Parse(httpContext);
            await odata.ProcessRequestAsync(httpContext, odataRequest).ConfigureAwait(false);

            return(httpContext);
        }