| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- namespace SharedKernel.Storage
- {
- public enum UploadTarget
- {
- Editor = 1,
- Upload
- }
- public enum UploadFolder
- {
- Basic = 1, // 기본 설정
- EmailTemplate, // 알림 발송 양식 - 이메일
- Document, // 문서
- Faq, // 자주 묻는 질문
- Popup, // 팝업
- Banner, // 배너
- MemberGrade, // 회원등급
- MemberThumb, // 회원 사진
- MemberIcon, // 회원 아이콘
- Board // 게시판
- }
- // 추가 경로 값
- public enum UploadAddition
- {
- // 기본 설정
- BlockAlertContent = 1,
- MaintenanceContent,
- // 게시판
- ListHeaderContent, // 게시판 목록 - 상단 내용
- ListFooterContent, // 게시판 목록 - 하단 내용
- PostWriteEmailNotifyContent , // 게시판 알림 양식 - 게시글 작성 시 내용
- CommentWriteEmailNotifyContent, // 게시판 알림 양식 - 댓글 작성 시 내용
- ReplyWriteEmailNotifyContent, // 게시판 알림 양식 - 답글 작성 시 내용
- WriteHeaderContent, // 게시판 작성 - 상단 내용
- WriteFooterContent, // 게시판 작성 - 하단 내용
- WriteDefaultContent, // 게시판 작성 - 작성란 기본 내용
- // 알림 발송 양식- 이메일
- RegisterEmailFormContent,
- RegistrationEmailFormContent,
- ResetPasswordEmailFormContent,
- ChangedPasswordEmailFormContent,
- WithdrawEmailFormContent,
- EmailVerifyFormContent,
- ChangedEmailFormContent
- }
- public readonly record struct FileStoragePath(UploadTarget Target, UploadFolder Folder, int? ID = null, UploadAddition? Addition = null)
- {
- public string ToRelativePath()
- {
- string t = Target switch
- {
- UploadTarget.Editor => "editors",
- UploadTarget.Upload => "uploads",
- _ => throw new ArgumentNullException(nameof(Target))
- };
- string f = Folder switch
- {
- UploadFolder.Basic => "basic",
- UploadFolder.EmailTemplate => "template/email",
- UploadFolder.Document => "document",
- UploadFolder.Faq => "faq",
- UploadFolder.Popup => "popup",
- UploadFolder.Banner => "banner",
- UploadFolder.MemberGrade => "member/grade",
- UploadFolder.MemberThumb => "member/thumb",
- UploadFolder.MemberIcon => "member/icon",
- UploadFolder.Board => "board",
- _ => string.Empty
- };
- var a = Addition.HasValue ? ((int)Addition.Value).ToString() : string.Empty;
- return string.Join('/', new[] { t, f, ID.ToString(), a }.Where(x => !string.IsNullOrWhiteSpace(x)));
- }
- }
- }
|