using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Strata.ContinuousImprovement.Biz.GMDN; using System.Threading; using System.Threading.Tasks; namespace Strata.ContinuousImprovement.Api.Controllers { [ApiController] [ApiVersion("1.0")] [Route("api/v{api-version:apiVersion}/[controller]")] public class GMDNFileUploadController : ControllerBase { private readonly IGMDNService _gmdnService; public GMDNFileUploadController(IGMDNService gmdnService) { _gmdnService = gmdnService; } [HttpPost("{fileType}/[action]")] [DisableRequestSizeLimit, RequestFormLimits(MultipartBodyLengthLimit = int.MaxValue, ValueLengthLimit = int.MaxValue)] public async Task UploadGMDNFile(GMDNFileType fileType, IFormFile file, CancellationToken cancellationToken) { var userName = User?.Identity?.Name; switch (fileType) { case GMDNFileType.Term: await _gmdnService.SeedGMDNTerms(file, userName, cancellationToken); break; case GMDNFileType.TermCategory: await _gmdnService.SeedGMDNTermCategories(file, userName, cancellationToken); break; case GMDNFileType.Category: await _gmdnService.SeedGMDNCategories(file, userName, cancellationToken); break; } return Ok(); } } public enum GMDNFileType { Term, TermCategory, Category } }