2026-02-03 16:55:37 -06:00
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
|
|
|
|
namespace ApplianceRepair
|
|
|
|
|
|
{
|
|
|
|
|
|
public class HomePageReader(DatabaseContext db)
|
|
|
|
|
|
{
|
|
|
|
|
|
public async Task<HomePageRecord?> ReadLatestRecord()
|
|
|
|
|
|
{
|
2026-04-22 20:09:26 -05:00
|
|
|
|
var records = await db.HomePage.OrderByDescending(page => page.Id).FirstOrDefaultAsync();
|
|
|
|
|
|
return records;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<HomePageModel?> ReadLatestRecordWithModel(ContentCardReader contentCardReader)
|
|
|
|
|
|
{
|
|
|
|
|
|
var record = await db.HomePage.OrderByDescending(page => page.Id).FirstOrDefaultAsync();
|
|
|
|
|
|
if (record == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var model = new HomePageModel(record);
|
|
|
|
|
|
var pageName = HomePageModel.PageName;
|
|
|
|
|
|
|
|
|
|
|
|
var services = await contentCardReader.ReadAllByPageAndGroup(pageName, HomePageModel.ContentCardTypes.Service.ToString()) ?? [];
|
|
|
|
|
|
foreach (var card in services)
|
|
|
|
|
|
{
|
|
|
|
|
|
model.ServicesCards.Add(new ContentCardModel(card));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var trust = await contentCardReader.ReadAllByPageAndGroup(pageName, HomePageModel.ContentCardTypes.Trust.ToString()) ?? [];
|
|
|
|
|
|
foreach (var card in trust)
|
|
|
|
|
|
{
|
|
|
|
|
|
model.TrustCards.Add(new ContentCardModel(card));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return model;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task AddRecord(HomePageRecord record)
|
|
|
|
|
|
{
|
|
|
|
|
|
await db.AddAsync(record);
|
|
|
|
|
|
await db.SaveChangesAsync();
|
2026-02-03 16:55:37 -06:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class ContentCardReader(DatabaseContext db)
|
|
|
|
|
|
{
|
|
|
|
|
|
public async Task<List<ContentCardRecord>?> ReadAllByPageAndGroup(string belongsToPage, string group)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await db.ContentCards.Where(card => card.BelongsToPage == belongsToPage && card.Group == group).ToListAsync();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<List<ContentCardRecord>?> ReadAllByPage(string belongsToPage)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await db.ContentCards.Where(card => card.BelongsToPage == belongsToPage).ToListAsync();
|
|
|
|
|
|
}
|
2026-04-22 20:09:26 -05:00
|
|
|
|
|
|
|
|
|
|
public async Task AddRecord(ContentCardRecord record)
|
|
|
|
|
|
{
|
|
|
|
|
|
await db.ContentCards.AddAsync(record);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task UpdateRecord(ContentCardRecord record)
|
|
|
|
|
|
{
|
|
|
|
|
|
var found = db.ContentCards.Where((card) => card.Id == record.Id).FirstOrDefault();
|
|
|
|
|
|
if (found == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
await AddRecord(record);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
db.ContentCards.Update(record);
|
|
|
|
|
|
}
|
|
|
|
|
|
await db.SaveChangesAsync();
|
|
|
|
|
|
}
|
2026-02-03 16:55:37 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class BusinessConfigReader(DatabaseContext db)
|
|
|
|
|
|
{
|
|
|
|
|
|
public async Task<BusinessConfigRecord?> ReadLatestRecord()
|
|
|
|
|
|
{
|
|
|
|
|
|
return await db.BusinessConfig.OrderByDescending(page => page.Id).FirstOrDefaultAsync();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|