using SeaHaven.DataServices.Helpers; using SeaHaven.DataServices.Interfaces; namespace SeaHaven.Services.Helpers; public static class DashboardRegions { public static readonly IReadOnlyList Names = WorkOrderBoardRegions.Names; public static string Resolve(string? state) { var code = UsStateCodes.ToCode(state); if (code is null) return "Unmapped/Other"; foreach (var region in Names.Where(region => region != "Unmapped/Other")) { if (WorkOrderBoardRegions.StorageValuesFor(region).Contains(code)) return region; } return "Unmapped/Other"; } public static IReadOnlyDictionary Count( IReadOnlyList workOrders) { var counts = Names.ToDictionary(name => name, _ => 0, StringComparer.Ordinal); foreach (var workOrder in workOrders) counts[Resolve(workOrder.LocationState)]++; return counts; } }