PlanTempusApp/PlanTempus.Application/Features/Dashboard/Components/QuickStatList/QuickStatListViewComponent.cs
Janus C. H. Knudsen 12869e35bf wip
2026-01-11 18:18:36 +01:00

42 lines
1.2 KiB
C#

using Microsoft.AspNetCore.Mvc;
namespace PlanTempus.Application.Features.Dashboard.Components;
public class QuickStatListViewComponent : ViewComponent
{
public IViewComponentResult Invoke(string key)
{
var model = QuickStatListCatalog.Get(key);
return View(model);
}
}
public class QuickStatListViewModel
{
public required string Key { get; init; }
public required string Title { get; init; }
public required string Icon { get; init; }
public required IReadOnlyList<string> StatKeys { get; init; }
}
public static class QuickStatListCatalog
{
private static readonly Dictionary<string, QuickStatListViewModel> Lists = new()
{
["this-week"] = new QuickStatListViewModel
{
Key = "this-week",
Title = "Denne uge",
Icon = "chart-line-up",
StatKeys = ["bookings-week", "revenue-week", "new-customers", "avg-occupancy"]
}
};
public static QuickStatListViewModel Get(string key)
{
if (Lists.TryGetValue(key, out var list))
return list;
throw new KeyNotFoundException($"QuickStatList with key '{key}' not found");
}
}