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) { if (string.IsNullOrWhiteSpace(state)) return "Unmapped/Other"; var normalized = state.Trim().ToUpperInvariant(); foreach (var region in Names.Where(region => region != "Unmapped/Other")) { if (WorkOrderBoardRegions.StorageValuesFor(region).Contains(normalized)) 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; } }