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 StatKeys { get; init; } } public static class QuickStatListCatalog { private static readonly Dictionary 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"); } }