using System.Threading.Tasks; using MalwareMultiScan.Api.Services; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace MalwareMultiScan.Api.Controllers { [Route("download")] public class DownloadController : Controller { private readonly ScanResultsService _scanResultsService; public DownloadController(ScanResultsService scanResultsService) { _scanResultsService = scanResultsService; } [HttpGet("{id}")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] public async Task Index(string id) { var fileStream = await _scanResultsService.ObtainFile(id); if (fileStream == null) return NotFound(); return File(fileStream, "application/octet-stream"); } } }