From 997ab80fa4b08fd68e306b1484149c3e4d14a0db Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Tue, 17 Feb 2026 23:02:58 +0330 Subject: [PATCH] refactor: migrate About & Contact pages to SitePageSettings system - About.razor: use SitePageSettingsService + GetSettings() - About.razor.cs: read values/team from ImageGroups instead of SitePage sections - Contact.razor: use SitePageSettingsService + GetSettings() - Contact.razor.cs: read address/phone/email/social from SettingsJson --- src/FrontOffice.Main/Pages/About.razor | 54 ++++++----------- src/FrontOffice.Main/Pages/About.razor.cs | 30 ++++++---- src/FrontOffice.Main/Pages/Contact.razor | 20 +++---- src/FrontOffice.Main/Pages/Contact.razor.cs | 65 +++++---------------- 4 files changed, 62 insertions(+), 107 deletions(-) diff --git a/src/FrontOffice.Main/Pages/About.razor b/src/FrontOffice.Main/Pages/About.razor index 57485ba..784f052 100644 --- a/src/FrontOffice.Main/Pages/About.razor +++ b/src/FrontOffice.Main/Pages/About.razor @@ -1,6 +1,6 @@ @attribute [Route(RouteConstants.About.Index)] @inject NavigationManager Navigation -@inject SitePageService SitePageService +@inject SitePageSettingsService PageSettingsService درباره ما | کارا بازار سلامت @@ -66,40 +66,22 @@ else - @(_visionSection?.Title ?? "چشم‌انداز") + @(_settings?.VisionTitle ?? "چشم‌انداز") + + + @(_settings?.VisionText ?? "تبدیل شدن به پیشروترین پلتفرم مدیریت تیم‌های فروش در منطقه، با ارائه راهکارهای هوشمند و کاربرپسند برای کسب‌وکارهای کوچک و بزرگ.") - @if (!string.IsNullOrWhiteSpace(_visionSection?.HtmlContent)) - { - - @((MarkupString)_visionSection.HtmlContent) - - } - else - { - - تبدیل شدن به پیشروترین پلتفرم مدیریت تیم‌های فروش در منطقه، با ارائه راهکارهای هوشمند و کاربرپسند برای کسب‌وکارهای کوچک و بزرگ. - - } - @(_missionSection?.Title ?? "مأموریت") + @(_settings?.MissionTitle ?? "مأموریت") + + + @(_settings?.MissionText ?? "توانمندسازی کسب‌وکارها از طریق فناوری‌های نوین، ساده‌سازی فرآیندهای پیچیده و ایجاد فرصت‌های جدید برای رشد و توسعه پایدار.") - @if (!string.IsNullOrWhiteSpace(_missionSection?.HtmlContent)) - { - - @((MarkupString)_missionSection.HtmlContent) - - } - else - { - - توانمندسازی کسب‌وکارها از طریق فناوری‌های نوین، ساده‌سازی فرآیندهای پیچیده و ایجاد کارا بازار سلامت‌های جدید برای رشد و توسعه پایدار. - - } @@ -111,21 +93,21 @@ else ارزش‌های ما - @if (_valueSections.Any()) + @if (_valueImages.Any()) { - @foreach (var value in _valueSections) + @foreach (var value in _valueImages) { @if (!string.IsNullOrWhiteSpace(value.IconName)) { - + } @value.Title - @if (!string.IsNullOrWhiteSpace(value.HtmlContent)) + @if (!string.IsNullOrWhiteSpace(value.Description)) { - @((MarkupString)value.HtmlContent) + @value.Description } @@ -199,9 +181,9 @@ else تیم ما - @if (_teamSections.Any()) + @if (_teamImages.Any()) { - @foreach (var member in _teamSections) + @foreach (var member in _teamImages) { @@ -222,10 +204,10 @@ else { @member.Subtitle } - @if (!string.IsNullOrWhiteSpace(member.HtmlContent)) + @if (!string.IsNullOrWhiteSpace(member.Description)) { - @((MarkupString)member.HtmlContent) + @member.Description } diff --git a/src/FrontOffice.Main/Pages/About.razor.cs b/src/FrontOffice.Main/Pages/About.razor.cs index af24e4b..f076c56 100644 --- a/src/FrontOffice.Main/Pages/About.razor.cs +++ b/src/FrontOffice.Main/Pages/About.razor.cs @@ -5,24 +5,22 @@ namespace FrontOffice.Main.Pages; public partial class About { private bool _loading = true; - private SitePageDto? _page; - private SitePageSectionDto? _visionSection; - private SitePageSectionDto? _missionSection; - private List _valueSections = new(); - private List _teamSections = new(); + private PageSettingsDto? _page; + private AboutSettings? _settings; + private List _valueImages = new(); + private List _teamImages = new(); protected override async Task OnInitializedAsync() { try { - _page = await SitePageService.GetByKeyAsync("about"); + _page = await PageSettingsService.GetPageAsync("about"); if (_page != null) { - _visionSection = _page.GetSection("vision"); - _missionSection = _page.GetSection("mission"); - _valueSections = _page.GetSections("value-").ToList(); - _teamSections = _page.GetSections("team-").ToList(); + _settings = _page.GetSettings(); + _valueImages = _page.GetImages("values"); + _teamImages = _page.GetImages("team"); } } catch @@ -34,4 +32,16 @@ public partial class About _loading = false; } } + + private class AboutSettings + { + public string? VisionTitle { get; set; } + public string? VisionText { get; set; } + public string? VisionIcon { get; set; } + public string? MissionTitle { get; set; } + public string? MissionText { get; set; } + public string? MissionIcon { get; set; } + public string? ValuesTitle { get; set; } + public string? TeamTitle { get; set; } + } } \ No newline at end of file diff --git a/src/FrontOffice.Main/Pages/Contact.razor b/src/FrontOffice.Main/Pages/Contact.razor index ed61fa4..af2968a 100644 --- a/src/FrontOffice.Main/Pages/Contact.razor +++ b/src/FrontOffice.Main/Pages/Contact.razor @@ -1,5 +1,5 @@ @attribute [Route(RouteConstants.Contact.Index)] -@inject SitePageService SitePageService +@inject SitePageSettingsService PageSettingsService ارتباط با ما | کارا بازار سلامت @@ -133,7 +133,7 @@
آدرس - @(_contactAddress ?? "کرج مهرویلا میدان مادر ساختمان بزرگمهر طبقه ۴ واحد ۱۶") + @(_settings?.Address ?? "کرج مهرویلا میدان مادر ساختمان بزرگمهر طبقه ۴ واحد ۱۶")
@@ -142,7 +142,7 @@
تلفن - @(_contactPhone ?? "026-34233563") + @(_settings?.Phone ?? "026-34233563")
@@ -150,7 +150,7 @@
ایمیل - @(_contactEmail ?? "info@kbs1.co") + @(_settings?.Email ?? "info@kbs1.co")
@@ -159,7 +159,7 @@
ساعات کاری - @((MarkupString)(_contactHours ?? "شنبه تا پنج‌شنبه
۹ صبح تا ۶ عصر")) + @((MarkupString)(_settings?.WorkingHours ?? "شنبه تا پنج‌شنبه
۹ صبح تا ۶ عصر"))
@@ -174,7 +174,7 @@ تلگرام @@ -183,7 +183,7 @@ اینستاگرام @@ -192,7 +192,7 @@ لینکدین @@ -201,7 +201,7 @@ واتس‌اپ @@ -226,7 +226,7 @@ نقشه موقعیت مکانی - @(_contactAddress ?? "کرج مهرویلا میدان مادر ساختمان بزرگمهر طبقه ۴ واحد ۱۶") + @(_settings?.Address ?? "کرج مهرویلا میدان مادر ساختمان بزرگمهر طبقه ۴ واحد ۱۶") diff --git a/src/FrontOffice.Main/Pages/Contact.razor.cs b/src/FrontOffice.Main/Pages/Contact.razor.cs index d44c34c..2e7f2d4 100644 --- a/src/FrontOffice.Main/Pages/Contact.razor.cs +++ b/src/FrontOffice.Main/Pages/Contact.razor.cs @@ -12,52 +12,19 @@ public partial class Contact private bool _isSubmitting; private readonly ContactFormValidator _contactFormValidator = new(); - // Dynamic CMS data - private SitePageDto? _page; - private string? _contactAddress; - private string? _contactPhone; - private string? _contactEmail; - private string? _contactHours; - private string? _socialTelegram; - private string? _socialInstagram; - private string? _socialLinkedin; - private string? _socialWhatsapp; + // Dynamic CMS data (new simplified system) + private PageSettingsDto? _page; + private ContactSettings? _settings; protected override async Task OnInitializedAsync() { try { - _page = await SitePageService.GetByKeyAsync("contact"); + _page = await PageSettingsService.GetPageAsync("contact"); if (_page != null) { - // Load contact info from CMS section - var contactInfoSection = _page.GetSection("contact-info"); - if (contactInfoSection != null) - { - var contactData = contactInfoSection.GetExtraData(); - if (contactData != null) - { - _contactAddress = contactData.Address; - _contactPhone = contactData.Phone; - _contactEmail = contactData.Email; - _contactHours = contactData.Hours; - } - } - - // Load social media links from CMS section - var socialSection = _page.GetSection("social-media"); - if (socialSection != null) - { - var socialData = socialSection.GetExtraData(); - if (socialData != null) - { - _socialTelegram = socialData.Telegram; - _socialInstagram = socialData.Instagram; - _socialLinkedin = socialData.Linkedin; - _socialWhatsapp = socialData.Whatsapp; - } - } + _settings = _page.GetSettings(); } } catch @@ -111,12 +78,12 @@ public partial class Contact private void CallSupport() { - Snackbar.Add($"شماره تماس: {_contactPhone ?? "026-34233563"}", Severity.Info); + Snackbar.Add($"شماره تماس: {_settings?.Phone ?? "026-34233563"}", Severity.Info); } private void SendEmail() { - Snackbar.Add($"ایمیل: {_contactEmail ?? "info@kbs1.co"}", Severity.Info); + Snackbar.Add($"ایمیل: {_settings?.Email ?? "info@kbs1.co"}", Severity.Info); } public class ContactForm @@ -142,20 +109,16 @@ public partial class Contact } } - // DTO classes for ExtraData JSON deserialization - private class ContactInfoData + // DTO class for SettingsJson deserialization + private class ContactSettings { public string? Address { get; set; } public string? Phone { get; set; } public string? Email { get; set; } - public string? Hours { get; set; } - } - - private class SocialMediaData - { - public string? Telegram { get; set; } - public string? Instagram { get; set; } - public string? Linkedin { get; set; } - public string? Whatsapp { get; set; } + public string? WorkingHours { get; set; } + public string? TelegramUrl { get; set; } + public string? InstagramUrl { get; set; } + public string? LinkedinUrl { get; set; } + public string? WhatsappUrl { get; set; } } } \ No newline at end of file