using Microsoft.AspNetCore.Mvc; using OI.Metrology.Shared.Models.Stateless; using OI.Metrology.Shared.Services; namespace OI.Metrology.Server.ApiControllers; [ApiController] [Route("api/[controller]")] public partial class SpreadingResistanceProfileController : ControllerBase, ISpreadingResistanceProfileController { private readonly IAttachmentsService _AttachmentsService; private readonly IMetrologyRepository _MetrologyRepository; private readonly IToolTypesRepository _ToolTypesRepository; private readonly ISpreadingResistanceProfileService _SpreadingResistanceProfileService; public SpreadingResistanceProfileController(IMetrologyRepository metrologyRepository, IAttachmentsService attachmentsService, IToolTypesRepository toolTypesRepository, ISpreadingResistanceProfileService spreadingResistanceProfileService) { _MetrologyRepository = metrologyRepository; _AttachmentsService = attachmentsService; _ToolTypesRepository = toolTypesRepository; _SpreadingResistanceProfileService = spreadingResistanceProfileService; } [HttpGet] [Route("{toolTypeId}/{tabletype}/files/{attachmentId}/{filename}")] public IActionResult GetAttachment(int toolTypeId, string tabletype, string attachmentId, string filename) { (string? message, string? contenttype, Stream? stream) = _ToolTypesRepository.GetAttachment(_MetrologyRepository, _AttachmentsService, toolTypeId, tabletype, attachmentId, filename); if (message is not null) return Content(message); else if (contenttype is not null && stream is not null) return File(_SpreadingResistanceProfileService.GetImageBytes(stream), "image/jpeg"); else throw new Exception(); } }