Esempio n. 1
0
        public override Task <HttpResponseMessage> WriteResponse(ResponseWriterContext context)
        {
            var outputInfo = context.Response.As <TOutputInfo>() ??
                             _actionMethod.GetAttribute <TAttribute>();
            var data = context.Response.As <OutputBody <T> >()?.Data ?? context.Response as T;

            if (data != null)
            {
                _responseMessage.Content = GetContent(data, outputInfo);
                _responseMessage.Content.Headers.SetContentType(
                    outputInfo?.ContentType ?? GetContentType(data));
                if (outputInfo != null && outputInfo.Filename.IsNotNullOrEmpty())
                {
                    _responseMessage.Content.Headers.SetAttachmentDisposition(outputInfo.Filename);
                }
            }
            return(_responseMessage.ToTaskResult());
        }