shoc-backend/SeaHaven.Services/Helpers/LifecycleStatusMapper.cs

34 lines
1.4 KiB
C#

using Data.SeaHavenIndustries.Enums;
namespace SeaHaven.Services.Helpers
{
public static class LifecycleStatusMapper
{
public static LifecycleStatus? FromLegacyStatus(string? status)
{
if (string.IsNullOrWhiteSpace(status)) return null;
return status.Trim().ToLowerInvariant() switch
{
"open" => LifecycleStatus.Incomplete,
"inprogress" or "in progress" => LifecycleStatus.InProgress,
"completed" or "complete" => LifecycleStatus.Complete,
"cancelled" or "canceled" => LifecycleStatus.Canceled,
"onhold" or "on hold" => LifecycleStatus.OnHold,
"scheduled" => LifecycleStatus.Scheduled,
"pendingvendor" or "pending vendor" => LifecycleStatus.PendingVendor,
"pendingapproval" or "pending approval" => LifecycleStatus.PendingApproval,
"needsreview" or "needs review" => LifecycleStatus.NeedsReview,
"closed" => LifecycleStatus.Closed,
_ => LifecycleStatus.NeedsReview
};
}
public static LifecycleStatus? ParseLifecycleStatus(string? value)
{
if (string.IsNullOrWhiteSpace(value)) return null;
if (Enum.TryParse<LifecycleStatus>(value, true, out var parsed)) return parsed;
return FromLegacyStatus(value);
}
}
}