38 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|