66using Microsoft . AspNetCore . Http ;
77using Microsoft . AspNetCore . Http . Headers ;
88using Microsoft . Net . Http . Headers ;
9- using HttpResponse = Microsoft . AspNetCore . Http . HttpResponse ;
109
1110namespace Dibix . Http . Host
1211{
13- internal sealed class HttpResponseFormatter : IHttpResponseFormatter < HttpRequestDescriptor >
12+ internal sealed class HttpResponseFormatter : HttpResponseFormatter < HttpRequestDescriptor >
1413 {
1514 private readonly HttpResponse _response ;
1615
@@ -19,11 +18,11 @@ public HttpResponseFormatter(HttpResponse response)
1918 _response = response ;
2019 }
2120
22- public async Task < object ? > Format ( object ? result , HttpRequestDescriptor request , HttpActionDefinition action , CancellationToken cancellationToken )
21+ public override async Task < object ? > Format ( object ? result , HttpRequestDescriptor request , HttpActionDefinition action , CancellationToken cancellationToken )
2322 {
2423 if ( action . FileResponse != null )
2524 {
26- await WriteFileResponse ( result , action , cancellationToken ) . ConfigureAwait ( false ) ;
25+ await WriteFileResponse ( result , action . FileResponse , cancellationToken ) . ConfigureAwait ( false ) ;
2726 }
2827 else
2928 {
@@ -33,7 +32,7 @@ public HttpResponseFormatter(HttpResponse response)
3332 return null ;
3433 }
3534
36- private async Task WriteFileResponse ( object ? result , HttpActionDefinition action , CancellationToken cancellationToken )
35+ private async Task WriteFileResponse ( object ? result , HttpFileResponseDefinition fileResponse , CancellationToken cancellationToken )
3736 {
3837 FileEntity ? file = ( FileEntity ? ) result ;
3938 if ( file == null )
@@ -46,9 +45,9 @@ private async Task WriteFileResponse(object? result, HttpActionDefinition action
4645
4746 ResponseHeaders responseHeaders = _response . GetTypedHeaders ( ) ;
4847 responseHeaders . ContentType = new MediaTypeHeaderValue ( mediaType ) ;
49- responseHeaders . ContentDisposition = new ContentDispositionHeaderValue ( "inline" ) { FileName = file . FileName } ;
48+ responseHeaders . ContentDisposition = new ContentDispositionHeaderValue ( GetContentDispositionType ( fileResponse . DispositionType ) ) { FileName = file . FileName } ;
5049
51- if ( action . FileResponse . Cache )
50+ if ( fileResponse . Cache )
5251 {
5352 DateTime now = DateTime . Now ;
5453 TimeSpan year = now . AddYears ( 1 ) - now ;
0 commit comments