Files
ApplianceRepair/Components/Pages/Home.Razor.cs
2026-04-25 21:25:53 -05:00

38 lines
2.2 KiB
C#

using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Caching.Memory;
namespace ApplianceRepair.Components.Pages
{
public partial class Home(IMemoryCache cache, HomePageReader homePageReader, ContentCardReader contentCardReader, BusinessConfigReader businessConfigReader) : ComponentBase
{
private HomePageModel? Model;
protected override async Task OnInitializedAsync()
{
// TODO: Figure out a better cache system, needs to be marked dirty if admin makes a config change
//if (!cache.TryGetValue(nameof(HomePageModel), out Model))
//{
// 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)) ?? [];
// Model = new HomePageModel(latestHomeRecord, businessConfig, servicesList, trustList);
// var cacheOptions = new MemoryCacheEntryOptions()
// .SetAbsoluteExpiration(TimeSpan.FromHours(24))
// .SetSlidingExpiration(TimeSpan.FromHours(2));
// cache.Set(nameof(HomePageModel), Model, cacheOptions);
//}
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)) ?? [];
Model = new HomePageModel(latestHomeRecord, businessConfig, servicesList, trustList);
}
}
}