WeddingThankYou 1.0.0.0
결혼식 이후 감사 인사와 사진, 계좌 안내, 연락처를 모바일 페이지로 전달하는 감사장 서비스입니다.
로딩중...
검색중...
일치하는것 없음
ThankYouDesign.cs
이 파일의 문서화 페이지로 가기
1using System.Text.Json.Serialization;
2using Wedding.Common;
3
5
14[JsonConverter(typeof(JsonStringEnumConverter))]
16{
43 Tabs = 2,
44}
45
54public static class ThankYouDesignCatalog
55{
64 public static IReadOnlyList<WeddingThemeOption> Themes => WeddingThemeCatalog.Options;
65
74 public static IReadOnlyList<WeddingLayoutOption> Layouts => WeddingLayoutCatalog.Options;
75
100 public static WeddingLayoutOption GetLayout(WeddingLayoutMode mode) =>
101 WeddingLayoutCatalog.Instance.Find(mode) ?? WeddingLayoutCatalog.Options[0];
102
127 public static WeddingThemeOption GetTheme(string? key) =>
128 WeddingThemeCatalog.Instance.Find(key) ?? WeddingThemeCatalog.Options[0];
129
154 public static ThankYouLayoutMode FromLegacyLayoutKey(string? key) =>
155 key?.Trim().ToLowerInvariant() switch
156 {
157 "tabs" => ThankYouLayoutMode.Tabs,
158 _ => ThankYouLayoutMode.OnePage,
159 };
160
185 public static string ToLegacyLayoutKey(ThankYouLayoutMode mode) =>
186 mode == ThankYouLayoutMode.Tabs ? "tabs" : "onepage";
187
212 public static WeddingLayoutMode ToWeddingLayoutMode(ThankYouLayoutMode mode) =>
213 mode == ThankYouLayoutMode.Tabs ? WeddingLayoutMode.TabMenu : WeddingLayoutMode.WebPage;
214
239 public static ThankYouLayoutMode FromWeddingLayoutMode(WeddingLayoutMode mode) =>
240 mode == WeddingLayoutMode.TabMenu ? ThankYouLayoutMode.Tabs : ThankYouLayoutMode.OnePage;
241
266 public static string ToLegacyLayoutKey(WeddingLayoutMode mode) =>
267 WeddingLayoutCatalog.ToLegacyKey(mode);
268
293 public static WeddingLayoutMode ResolveLayoutMode(string? legacyStyle)
294 {
295 return WeddingLayoutCatalog.FromLegacyKey(legacyStyle);
296 }
297
314 public static void Normalize(TenantConfig config)
315 {
316 config.UnlockedLayoutModes ??= new();
317 config.UnlockedThemeKeys ??= new();
318 config.SectionOrder ??= WeddingSectionOrderCatalog.ThankYouRecommendedOrder.ToList();
319 config.HeroPanelPlacement ??= new WeddingFloatingPosition();
320 config.MusicButtonPlacement ??= new WeddingFloatingPosition();
321 config.StoryChapters = WeddingStoryChapterDefaults.Normalize(config.StoryChapters);
322
323 // 테마
324 var themeKey = !string.IsNullOrWhiteSpace(config.ThemeName) ? config.ThemeName : "rose";
325 config.ThemeName = WeddingThemeCatalog.NormalizeKey(themeKey);
326
327 // 레이아웃
328 var mode = ResolveLayoutMode(config.ThankYouStyle);
329 config.ThankYouStyle = ToLegacyLayoutKey(mode);
330 config.SectionOrder = WeddingSectionOrderCatalog.NormalizeThankYouOrder(config.SectionOrder);
331 }
332}
static WeddingLayoutOption GetLayout(WeddingLayoutMode mode)
static WeddingThemeOption GetTheme(string? key)
static ThankYouLayoutMode FromLegacyLayoutKey(string? key)
static IReadOnlyList< WeddingLayoutOption > Layouts
static string ToLegacyLayoutKey(ThankYouLayoutMode mode)
static string ToLegacyLayoutKey(WeddingLayoutMode mode)
static IReadOnlyList< WeddingThemeOption > Themes
static WeddingLayoutMode ToWeddingLayoutMode(ThankYouLayoutMode mode)
static void Normalize(TenantConfig config)
static ThankYouLayoutMode FromWeddingLayoutMode(WeddingLayoutMode mode)
static WeddingLayoutMode ResolveLayoutMode(string? legacyStyle)