shoc-backend/SeaHaven.Services/Helpers/DashboardRegions.cs
Alexandre Brandizzi 5c93e4ecec Merge remote-tracking branch 'origin/dev' into feat/ab/sh-348-region-filter
# Conflicts:
#	SeaHaven.Services/Helpers/DashboardRegions.cs
2026-09-17 02:20:44 -03:00

34 lines
999 B
C#

using SeaHaven.DataServices.Helpers;
using SeaHaven.DataServices.Interfaces;
namespace SeaHaven.Services.Helpers;
public static class DashboardRegions
{
public static readonly IReadOnlyList<string> 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<string, int> Count(
IReadOnlyList<DashboardWorkOrder> workOrders)
{
var counts = Names.ToDictionary(name => name, _ => 0, StringComparer.Ordinal);
foreach (var workOrder in workOrders)
counts[Resolve(workOrder.LocationState)]++;
return counts;
}
}