Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
=== auto-pr-body ===
Summary
This pull request addresses a variety of refactoring changes, such as moving
SendFileStream
out of theWriteFileHttpResponse
class and into a helper class as well as abstracting common code betweenSendSingleFileAsync
andSendMultipleFileAsync
into a new method. Additional modifications to theCreateContentDisposition
,WriteResponseAsync
, andSendMultipleFilesAsync
methods are also included.List of Changes
GetContentType
that takes parametersActivityExecutionContext
andstring filename
and returns a string.CreateContentDisposition
method to account for the newGetContentType
method.WriteResponseAsync
that takes parameterhttpContext
instead ofhttpContext.Response
.using System.Net.Http.Headers
using Microsoft.AspNetCore.Mvc
andusing Microsoft.AspNetCore.Routing
WriteResponseAsync
to set status code toHttpStatusCode.OK
SendDownloadablesAsync
parameter fromHttpResponse
toHttpContext
SendSingleFileAsync
parameter fromHttpResponse
toHttpContext
SendMultipleFilesAsync
parameter fromHttpResponse
toHttpContext
SendMultipleFilesAsync
SendSingleFileAsync
to handle two scenarios for filename and content typeSendMultipleFilesAsync
to use a temporary file to stream the zip archive back to the clientRefactoring Target
SendFileStream
out of theWriteFileHttpResponse
class and into a helper class.SendSingleFileAsync
andSendMultipleFileAsync
into a new method.SendMultipleFilesAsync
that is not related to producing a zip archive (e.g., ILogger).GetContentType
method into a dedicated class and/or move to a service layer.WriteResponseAsync
method to accept parameters as needed, and to use an interface to allow for a cleaner and more abstract data access pattern.