Exemplo n.º 1
0
        public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
        {
            if (context.Result is ObjectResult objectResult)
            {
                var statusCode = objectResult.StatusCode ?? context.HttpContext.Response.StatusCode;

                if (!_options.NoWrapStatusCode.Any(s => s == statusCode))
                {
                    var wrappContext = new DataWrapperContext(context.Result,
                                                              context.HttpContext,
                                                              _options,
                                                              context.ActionDescriptor);

                    var wrappedData = _wrapperExecutor.WrapSuccesfullysResult(objectResult.Value, wrappContext);
                    objectResult.Value        = wrappedData;
                    objectResult.DeclaredType = wrappedData.GetType();
                }
            }

            await next();
        }