42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace PlanTempus.Application.Features.Dashboard.Components;
|
|
|
|
public class BookingListViewComponent : ViewComponent
|
|
{
|
|
public IViewComponentResult Invoke(string key)
|
|
{
|
|
var model = BookingListCatalog.Get(key);
|
|
return View(model);
|
|
}
|
|
}
|
|
|
|
public class BookingListViewModel
|
|
{
|
|
public required string Key { get; init; }
|
|
public required string Title { get; init; }
|
|
public required string CurrentTime { get; init; }
|
|
public required IReadOnlyList<string> BookingKeys { get; init; }
|
|
}
|
|
|
|
public static class BookingListCatalog
|
|
{
|
|
private static readonly Dictionary<string, BookingListViewModel> Lists = new()
|
|
{
|
|
["todays-bookings"] = new BookingListViewModel
|
|
{
|
|
Key = "todays-bookings",
|
|
Title = "Dagens bookinger",
|
|
CurrentTime = "10:45",
|
|
BookingKeys = ["booking-1", "booking-2", "booking-3", "booking-4", "booking-5", "booking-6"]
|
|
}
|
|
};
|
|
|
|
public static BookingListViewModel Get(string key)
|
|
{
|
|
if (Lists.TryGetValue(key, out var list))
|
|
return list;
|
|
|
|
throw new KeyNotFoundException($"BookingList with key '{key}' not found");
|
|
}
|
|
}
|