26 lines
865 B
C#
26 lines
865 B
C#
namespace Yes.Blog.Endpoints.Admins.Themes
|
|
{
|
|
public class DownloadThemeEndpoint : ThemeEndpointScheme, IEndpoint
|
|
{
|
|
public void Map(IEndpointRouteBuilder app) => app.MapGet("/themes/{themeName}/download", Handle);
|
|
|
|
public record Request([FromRoute(Name = "themeName")] string ThemeName);
|
|
|
|
|
|
private async Task<Microsoft.AspNetCore.Http.IResult> Handle(
|
|
[AsParameters] Request request,
|
|
IMediator mediator, IMapper mapper, CancellationToken cancellationToken)
|
|
{
|
|
var command = new DownloadThemeCommand(request.ThemeName);
|
|
var response = await mediator.Send(command, cancellationToken);
|
|
|
|
string contentType = "application/zip";
|
|
string fileDownloadName = Path.GetFileName(response.Filepath);
|
|
|
|
return Results.File(response.Filepath, contentType, fileDownloadName);
|
|
|
|
}
|
|
}
|
|
|
|
}
|