AipFileManagerService.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using AipGateway.AIP;
  2. using Microsoft.AspNetCore.Mvc.Infrastructure;
  3. using System.Net.Http.Headers;
  4. using static AipGateway.API.Service.Models.ReqFileInfo;
  5. namespace AipGateway.API.Service.Services
  6. {
  7. public class AipFileManagerService : IAipFileManagerService
  8. {
  9. private readonly ILogger<AipFileManagerService> _logger;
  10. private readonly IConfiguration _configuration;
  11. private bool _isLoading;
  12. private AipConfig _aipConfig;
  13. private AipFileManager _aipFileManager = null;
  14. public AipFileManagerService()
  15. //public AipFileManagerService(ILogger<AipFileManagerService> logger)
  16. {
  17. _logger = null;
  18. _configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json", false).Build();
  19. _isLoading = false;
  20. _aipConfig = new AipConfig
  21. {
  22. AppName = _configuration["aip:AppName"], // 어플리케이션 이름
  23. AppVersion = _configuration["aip:AppVersion"], // 어플리케이션 버전
  24. ClientId = _configuration["aip:ClientId"], // 어플리케이션 ID(클라이언트 ID)
  25. TenantId = _configuration["aip:TenantId"], // 디렉토리(테넌트) ID
  26. MipData = _configuration["aip:MipData"], // Mip Data Path
  27. Domain = _configuration["aip:Domain"], // Domain
  28. EMail = _configuration["aip:EMail"], // User E-Mail
  29. SecretValue = _configuration["aip:SecretValue"], // 인증 비밀번호
  30. CertThumbPrint = _configuration["aip:CertThumbPrint"] // 인증서 지문
  31. };
  32. string tempLoginType = _configuration["aip:LoginType"];
  33. AipAuthLoginType loginType = (AipAuthLoginType)Enum.Parse(typeof(AipAuthLoginType), tempLoginType, true);
  34. _aipConfig.LoginType = loginType;
  35. _aipFileManager = new AipFileManager(_aipConfig);
  36. if (!_aipFileManager.Initialize())
  37. {
  38. Console.WriteLine("AipFileManagerService, _aipFileManager.Initialize Failed, {0}, {1}", _aipFileManager.LastErrNo, _aipFileManager.LastErrMsg);
  39. return;
  40. }
  41. if (!_aipFileManager.CreateProfile())
  42. {
  43. Console.WriteLine("AipFileManagerService, _aipFileManager.CreateProfile Failed, {0}, {1}", _aipFileManager.LastErrNo, _aipFileManager.LastErrMsg);
  44. return;
  45. }
  46. if (!_aipFileManager.CreateEngine())
  47. {
  48. Console.WriteLine("AipFileManagerService, _aipFileManager.CreateEngine Failed, {0}, {1}", _aipFileManager.LastErrNo, _aipFileManager.LastErrMsg);
  49. return;
  50. }
  51. _isLoading = true;
  52. }
  53. public async Task<AipConfig> GetConfig()
  54. {
  55. return _aipConfig;
  56. }
  57. public async Task<List<AipLabel>> GetLabels()
  58. {
  59. Console.WriteLine("AipFileManagerService::GetLabelsAsync: isLoading({0})", _isLoading);
  60. if (!_isLoading)
  61. {
  62. return null;
  63. }
  64. List<AipLabel> result = _aipFileManager.SensitivityLabels();
  65. return result;
  66. }
  67. public async Task<List<AipLabel>> GetPolicies()
  68. {
  69. Console.WriteLine("AipFileManagerService::GetPolicies: isLoading({0})", _isLoading);
  70. if (!_isLoading)
  71. {
  72. return null;
  73. }
  74. List<AipLabel> result = _aipFileManager.ListSensitivityLabels();
  75. return result;
  76. }
  77. public async Task<List<AipTemplate>> GetProtections()
  78. {
  79. Console.WriteLine("AipFileManagerService::GetProtections: isLoading({0})", _isLoading);
  80. if (!_isLoading)
  81. {
  82. return null;
  83. }
  84. List<AipTemplate> result = _aipFileManager.GetTemplates();
  85. return result;
  86. }
  87. public async Task<AipFileInfo> GetFileInfo(string fileName)
  88. {
  89. Console.WriteLine("AipFileManagerService::GetFileInfo-byFileName: isLoading({0})", _isLoading);
  90. if (!_isLoading)
  91. {
  92. return null;
  93. }
  94. AipFileInfo result = _aipFileManager.GetFileInfo(fileName);
  95. return result;
  96. }
  97. public async Task<AipFileInfo> GetFileInfo(Stream stream)
  98. {
  99. Console.WriteLine("AipFileManagerService::GetFileInfo-byFileStream: isLoading({0})", _isLoading);
  100. if (!_isLoading)
  101. {
  102. return null;
  103. }
  104. //if (streamArr == null || streamArr.Length == 0)
  105. //{
  106. // return null;
  107. //}
  108. AipFileInfo result = null;
  109. //using (MemoryStream fileStream = new MemoryStream(stream))
  110. //{
  111. result = _aipFileManager.GetFileInfo(stream);
  112. if (result != null)
  113. {
  114. if (result.OutputFileName != null)
  115. {
  116. using (var fileStream = File.Create(result.OutputFileName))
  117. {
  118. stream.Seek(0, SeekOrigin.Begin);
  119. stream.CopyTo(fileStream);
  120. }
  121. }
  122. }
  123. //}
  124. return result;
  125. }
  126. }
  127. }