public static void MaybeEnvelope <T>(this HttpResponse response, HttpRequest request, JsonConversionOptions options, IPage <T> data, IList <Error> errors, out object body) { var provider = request.HttpContext.RequestServices.GetService <IPagingInfoProvider>(); if (FeatureRequested(request, options.EnvelopeOperator)) { var envelope = new EnvelopeCollectionBody <T> { Data = data, Status = response.StatusCode, Headers = response.Headers, Errors = errors, HasErrors = errors?.Count > 0 }; body = envelope; if (provider != null) { envelope.Paging = provider.GetPagingInfo(request, data); } response.StatusCode = (int)HttpStatusCode.OK; return; } provider?.SetPagingInfoHeaders(request, response, data); body = new NestedCollectionBody <T> { Data = data, Errors = errors, HasErrors = errors?.Count > 0 }; }
public static void MaybeEnvelope <T>(this HttpResponse response, HttpRequest request, JsonConversionOptions options, IStream <T> data, IList <Error> errors, out object body) { if (FeatureRequested(request, options.EnvelopeOperator)) { body = new EnvelopeCollectionBody <T> { Data = data, Status = response.StatusCode, Headers = response.Headers, Errors = errors, HasErrors = errors?.Count > 0 }; } else { body = new NestedCollectionBody <T> { Data = data, Errors = errors, HasErrors = errors?.Count > 0 }; } response.StatusCode = (int)HttpStatusCode.OK; }