namespace ApplianceRepair.Components.Pages.admin { public partial class EditPages(HomePageReader homePageReader, ContentCardReader contentCardReader, BusinessConfigReader businessConfigReader) { public HomePageModel? HomePageModel; public BusinessInfoModel? BusinessInfo; private enum AdminTab { Home, About, BusinessInfo } private AdminTab CurrentTab = AdminTab.Home; protected override async Task OnInitializedAsync() { var businessConfig = await businessConfigReader.ReadLatestRecord() ?? Defaults.DefaultBusinessConfig; var latestHomeRecord = await homePageReader.ReadLatestRecord() ?? Defaults.DefaultHomePageContent; var servicesList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Services)) ?? []; var trustList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Trust)) ?? []; BusinessInfo = new BusinessInfoModel(businessConfig); HomePageModel = new HomePageModel(latestHomeRecord, businessConfig, servicesList, trustList); } private async void RevertHomePageModel() { var businessConfig = await businessConfigReader.ReadLatestRecord() ?? Defaults.DefaultBusinessConfig; var latestHomeRecord = await homePageReader.ReadLatestRecord() ?? Defaults.DefaultHomePageContent; var servicesList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Services)) ?? []; var trustList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Trust)) ?? []; BusinessInfo = new BusinessInfoModel(businessConfig); HomePageModel = new HomePageModel(latestHomeRecord, businessConfig, servicesList, trustList); } private async void RevertBusinessInfo() { var businessConfig = await businessConfigReader.ReadLatestRecord() ?? Defaults.DefaultBusinessConfig; BusinessInfo = new BusinessInfoModel(businessConfig); } private async void SaveHomePageModel() { HomePageModel.UpdatedAt = DateTime.Now; await homePageReader.UpdateRecord(HomePageModel); foreach (var card in HomePageModel.ServicesCards) { card.UpdatedAt = DateTime.Now; await contentCardReader.UpdateRecord(card); } foreach (var card in HomePageModel.TrustCards) { card.UpdatedAt = DateTime.Now; await contentCardReader.UpdateRecord(card); } } private async void SaveBusinessInfo() { BusinessInfo.UpdatedAt = DateTime.Now; await businessConfigReader.UpdateRecord(BusinessInfo); } private void AddServiceCard() { HomePageModel?.ServicesCards.Add(new ContentCardModel() { CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now, BelongsToPage = HomePageModel.PageName, Group = HomePageModel.ContentCardTypes.Services.ToString(), Header = "Service Name", Text = "Short Description" }); } private async void AddTrustCard() { HomePageModel?.TrustCards.Add(new ContentCardModel() { CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now, BelongsToPage = HomePageModel.PageName, Group = HomePageModel.ContentCardTypes.Trust.ToString(), Header = "Header", Text = "Short Description" }); } } }