123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 |
-
- using Aip.Service.Aip.Exceptions;
- using Aip.Service.Aip.Models;
- using Aip.Service.Aip.Serivces;
- using Aip.Service.Models.App;
- using Aip.Service.Models.Response;
- using Aip.Service.Repositories;
- using Aip.Service.Services.Interfaces;
- using Aip.Service.Utils;
- namespace Aip.Service.Services;
- public class BaseService
- {
- protected readonly IApiConfigService _aipConfigService;
- public BaseService(IApiConfigService aipConfigService)
- {
- _aipConfigService = aipConfigService;
- }
-
- protected CheckAip CheckAipRequest(string apiGuid, string dispFileName, string realFileName, bool isStream)
- {
- string reqFileName = "";
- if (isStream)
- {
- reqFileName = _aipConfigService.GetRequestFileName(apiGuid + FileUtils.GetExtension(dispFileName));
- }
- else
- {
- reqFileName = _aipConfigService.GetRequestFileName(realFileName);
- if (!FileUtils.IsExists(reqFileName))
- {
- return new CheckAip(101, "파일이 존재하지 않습니다.", dispFileName);
- }
- }
- string? newFileExt = _aipConfigService.GetSupportedFileType(reqFileName);
- if (newFileExt == null)
- {
- return new CheckAip(102, "지원하지 않는 파일형식 입니다.", dispFileName);
- }
- CheckAip result = new CheckAip(0, GlobalConstants.API_RESULT_SUCCESS, dispFileName);
- result.reqFileName = reqFileName;
- result.newFileExt = newFileExt;
- if (isStream)
- {
- result.dispFileName = FileUtils.GetFileNameWithoutExtension(dispFileName) + newFileExt;
- }
- else
- {
- result.dispFileName = FileUtils.GetFileNameWithoutExtension(realFileName) + newFileExt;
- }
- result.actualFileName = _aipConfigService.GetActualFileName(FileUtils.GetFileNameWithoutExtension(realFileName) + newFileExt);
- //result.actualFileName = _aipConfigService.GetActualFileName(apiGuid + newFileExt);
- return result;
- }
- protected ResponseFile ResponseFileException(Exception exception, string displayFileName)
- {
- if (exception is AipFileException)
- {
- AipFileException aipFileException = (AipFileException)exception;
- return new ResponseFile
- {
- errorCode = aipFileException.ErrorCode,
- errorMessage = aipFileException.Message,
- dispFileName = displayFileName,
- };
- }
- else
- {
- return new ResponseFile
- {
- errorCode = 109,
- errorMessage = exception.Message ?? "파일 작업 중에 시스템 오류가 발생했습니다.",
- dispFileName = displayFileName,
- };
- }
- }
- protected ResponseStream ResponseStreamException(Exception exception, string displayFileName)
- {
- if (exception is AipFileException)
- {
- AipFileException aipFileException = (AipFileException)exception;
- return new ResponseStream
- {
- errorCode = aipFileException.ErrorCode,
- errorMessage = aipFileException.Message,
- dispFileName = displayFileName,
- };
- }
- else
- {
- return new ResponseStream
- {
- errorCode = 109,
- errorMessage = exception.Message ?? "파일 스트림 작업 중에 시스템 오류가 발생했습니다.",
- dispFileName = displayFileName,
- };
- }
- }
- protected ResponseInfo ResponseInfoException(Exception exception)
- {
- if (exception is AipFileException)
- {
- AipFileException aipFileException = (AipFileException)exception;
- return new ResponseInfo
- {
- errorCode = aipFileException.ErrorCode,
- errorMessage = aipFileException.Message,
- };
- }
- else
- {
- return new ResponseInfo
- {
- errorCode = 109,
- errorMessage = exception.Message ?? "작업 중에 시스템 오류가 발생했습니다."
- };
- }
- }
- protected ResponseInfo ResponseGetFileInfo(AipFileInfo? fileInfo, string displayFileName)
- {
- bool isLabled = false;
- bool isProtected = false;
- DateTime creationTime = DateTime.Now;
- string? contentId = string.Empty;
- string? owner = string.Empty;
- string? labelId = string.Empty;
- string? labelName = string.Empty;
- string? templateId = string.Empty;
- string? templateName = string.Empty;
- long fileSize = 0;
- if (fileInfo != null)
- {
- fileSize = fileInfo.FileSize;
- if (fileInfo.Content != null)
- {
- creationTime = fileInfo.Content.CreationTime;
- }
- if (fileInfo.Label != null)
- {
- isLabled = true;
- labelId = fileInfo.Label.Id;
- labelName = fileInfo.Label.Name;
- }
- if (fileInfo.Protection != null)
- {
- owner = fileInfo.Protection.Owner;
- contentId = fileInfo.Protection.ContentId;
- if (fileInfo.Protection.ProtectionDescriptor != null)
- {
- isProtected = true;
- templateId = fileInfo.Protection.ProtectionDescriptor.TemplateId;
- templateName = fileInfo.Protection.ProtectionDescriptor.Name;
- }
- }
- }
- return new ResponseInfo
- {
- errorCode = 0,
- errorMessage = GlobalConstants.API_RESULT_SUCCESS,
- isLabled = isLabled,
- isProtected = isProtected,
- creationTime = creationTime,
- contentId = contentId,
- owner = owner,
- labelId = labelId,
- labelName = labelName,
- templateId = templateId,
- templateName = templateName,
- dispFileName = displayFileName,
- FileLabelGuid = labelId,
- FileProtectionGuid = templateId,
- FileOwner = owner,
- FileExt = Path.GetExtension(displayFileName),
- FileSize = fileSize,
- };
- }
- protected ResponseBase ResponseBase(SetFileInfo fileInfo, string displayFileName, string realFileName, string actualFileName)
- {
- ResponseBase result = new ResponseBase
- {
- errorCode = fileInfo.errorNo,
- errorMessage = fileInfo.errorMsg,
- dispFileName = displayFileName,
- realFileName = realFileName,
- };
- result.FileExt = FileUtils.GetExtension(displayFileName);
- result.FileOwner = fileInfo.fileOwner;
- result.FileSize = fileInfo.fileSize;
- result.FileLabelGuid = fileInfo.labelGuid;
- result.FileProtectionGuid = fileInfo.templateGuid;
- result.NewFileName = displayFileName;
- result.NewFileOwner = fileInfo.newFileOwner;
- result.NewFileExt = FileUtils.GetExtension(actualFileName);
- result.NewFileSize = fileInfo.newFileSize;
- result.NewFileLabelGuid = fileInfo.newFileLabelGuid;
- result.NewFileProtectionGuid = fileInfo.newFileTemplateGuid;
- return result;
- }
- protected ResponseFile ResponseSetFile(SetFileInfo fileInfo, string displayFileName, string realFileName, string actualFileName)
- {
- ResponseBase baseResponse = ResponseBase(fileInfo, displayFileName, realFileName, actualFileName);
- ResponseFile result = new ResponseFile
- {
- errorCode = baseResponse.errorCode,
- errorMessage = baseResponse.errorMessage,
- dispFileName = _aipConfigService.GetDispFileName(baseResponse.dispFileName, actualFileName),
- FileId = baseResponse.FileId,
- FileName = baseResponse.FileName,
- FileLabelGuid = baseResponse.FileLabelGuid,
- FileProtectionGuid = baseResponse.FileProtectionGuid,
- FileOwner = baseResponse.FileOwner,
- FileExt = baseResponse.FileExt,
- FileSize = baseResponse.FileSize,
- NewFileName = baseResponse.NewFileName,
- NewFileLabelGuid = baseResponse.NewFileLabelGuid,
- NewFileProtectionGuid = baseResponse.NewFileProtectionGuid,
- NewFileOwner = baseResponse.NewFileOwner,
- NewFileExt = baseResponse.NewFileExt,
- NewFileSize = baseResponse.NewFileSize
- };
- result.realFileName = realFileName;
- result.actualFileName = FileUtils.GetFileName(actualFileName);
- return result;
- }
- protected ResponseStream ResponseSetStream(SetFileInfo fileInfo, string displayFileName, string actualFileName)
- {
- ResponseBase baseResponse = ResponseBase(fileInfo, displayFileName, "", actualFileName);
- ResponseStream result = new ResponseStream
- {
- errorCode = baseResponse.errorCode,
- errorMessage = baseResponse.errorMessage,
- dispFileName = _aipConfigService.GetDispFileName(baseResponse.dispFileName, actualFileName),
- FileId = baseResponse.FileId,
- FileName = baseResponse.FileName,
- FileLabelGuid = baseResponse.FileLabelGuid,
- FileProtectionGuid = baseResponse.FileProtectionGuid,
- FileOwner = baseResponse.FileOwner,
- FileExt = baseResponse.FileExt,
- FileSize = baseResponse.FileSize,
- NewFileName = baseResponse.NewFileName,
- NewFileLabelGuid = baseResponse.NewFileLabelGuid,
- NewFileProtectionGuid = baseResponse.NewFileProtectionGuid,
- NewFileOwner = baseResponse.NewFileOwner,
- NewFileExt = baseResponse.NewFileExt,
- NewFileSize = baseResponse.NewFileSize
- };
- result.outputFileName = FileUtils.GetFileName(actualFileName);
- result.fileData = FileUtils.GetFileData(_aipConfigService.GetActualFileName(actualFileName));
- return result;
- }
- public CheckMultipartFile ValidateMultipartFile(IFormFile file, string apiGuid)
- {
- CheckMultipartFile result = new CheckMultipartFile
- {
- errorCode = 0,
- };
- string dispFileName = file.FileName;
- if (dispFileName == null)
- {
- result.errorCode = 81;
- result.errorMessage = "작업 할 파일 이름을 알 수가 없습니다.";
- result.dispFileName = "UnknownFileName";
- return result;
- }
- if (dispFileName.Contains(".."))
- {
- result.errorCode = 82;
- result.errorMessage = "파일 이름에 유효 하지 않은 경로가 포함 되어 있습니다.";
- return result;
- }
- if (file.Length <= 0)
- {
- result.errorCode = 83;
- result.errorMessage = "파일의 내용이 없습니다.";
- return result;
- }
- string saveFileName = apiGuid + FileUtils.GetExtension(dispFileName);
- string fileStorageLocation = _aipConfigService.GetRequestFileName(saveFileName);
- result.dispFileName = dispFileName;
- result.saveFileName = saveFileName;
- try
- {
- using (var stream = System.IO.File.Create(fileStorageLocation))
- {
- file.CopyTo(stream);
- }
- }
- catch (IOException)
- {
- result.errorCode = 84;
- result.errorMessage = "파일 저장 중에 오류가 발생하였습니다.";
- return result;
- }
- return result;
- }
- }
|