Esempio n. 1
0
        public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
        {
            var result = context.Result as ObjectResult;

            if (FiltersHelper.IsResponseSuccesful(result))
            {
                TDto dto = result.Value as TDto;
                if (filterConfiguration.SupportsCustomDataType && FiltersHelper.GetValueFromHeader(context, "Accept").Equals(filterConfiguration.CustomDataType))
                {
                    var dtoWithLinks = HateoasHelper.CreateLinksForSingleResource(dto, filterConfiguration, linkGenerator, context.Controller.GetType());
                    var envelopDto   = new EnvelopDto <TDto>(
                        dto,
                        dtoWithLinks.Links);
                    result.Value = envelopDto;
                }
                else
                {
                    result.Value = dto;
                }
            }
            await next();
        }