mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 06:03:12 +00:00
34 lines
999 B
C#
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;
|
|
}
|
|
}
|