mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-03 01:03:30 +00:00
84 lines
2.5 KiB
C#
84 lines
2.5 KiB
C#
using SeaHaven.DataServices.Interfaces;
|
|
|
|
namespace SeaHaven.Services.Helpers;
|
|
|
|
public static class DashboardRegions
|
|
{
|
|
public static readonly IReadOnlyList<string> Names =
|
|
["East", "Central", "West", "California", "Unmapped/Other"];
|
|
|
|
public static string Resolve(string? state)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(state))
|
|
return "Unmapped/Other";
|
|
|
|
return StateToRegion.TryGetValue(state.Trim().ToUpperInvariant(), out var region)
|
|
? region
|
|
: "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;
|
|
}
|
|
|
|
private static readonly IReadOnlyDictionary<string, string> StateToRegion =
|
|
new Dictionary<string, string>(StringComparer.Ordinal)
|
|
{
|
|
["CT"] = "East",
|
|
["DE"] = "East",
|
|
["GA"] = "East",
|
|
["ME"] = "East",
|
|
["MD"] = "East",
|
|
["MA"] = "East",
|
|
["NH"] = "East",
|
|
["NJ"] = "East",
|
|
["NY"] = "East",
|
|
["NC"] = "East",
|
|
["PA"] = "East",
|
|
["RI"] = "East",
|
|
["SC"] = "East",
|
|
["VT"] = "East",
|
|
["VA"] = "East",
|
|
["WV"] = "East",
|
|
["AL"] = "Central",
|
|
["AR"] = "Central",
|
|
["FL"] = "Central",
|
|
["IL"] = "Central",
|
|
["IN"] = "Central",
|
|
["IA"] = "Central",
|
|
["KS"] = "Central",
|
|
["KY"] = "Central",
|
|
["LA"] = "Central",
|
|
["MI"] = "Central",
|
|
["MN"] = "Central",
|
|
["MS"] = "Central",
|
|
["MO"] = "Central",
|
|
["NE"] = "Central",
|
|
["ND"] = "Central",
|
|
["OH"] = "Central",
|
|
["OK"] = "Central",
|
|
["SD"] = "Central",
|
|
["TN"] = "Central",
|
|
["WI"] = "Central",
|
|
["AK"] = "West",
|
|
["AZ"] = "West",
|
|
["CO"] = "West",
|
|
["HI"] = "West",
|
|
["ID"] = "West",
|
|
["MT"] = "West",
|
|
["NV"] = "West",
|
|
["NM"] = "West",
|
|
["OR"] = "West",
|
|
["TX"] = "West",
|
|
["UT"] = "West",
|
|
["WA"] = "West",
|
|
["WY"] = "West",
|
|
["CA"] = "California"
|
|
};
|
|
}
|