Files
continuousimprovement/src/Strata.ContinuousImprovement.Api/Controllers/GMDNFileUploadController.cs
T

49 lines
1.6 KiB
C#

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<ActionResult> 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
}
}