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(); }