namespace Oms.Domain.OrdersAggregate.Consts; public static class OrderExceptionStatusRules { public static readonly HashSet ForbiddenSourceStatuses = new(StringComparer.OrdinalIgnoreCase) { OrderStatusCodes.Draft, OrderStatusCodes.Deleted, OrderStatusCodes.Claimed }; public static bool CanMarkException(string? orderStatus) => !string.IsNullOrWhiteSpace(orderStatus) && !ForbiddenSourceStatuses.Contains(orderStatus.Trim()); public static string GetForbiddenReason(string? orderStatus) => orderStatus?.Trim().ToLowerInvariant() switch { OrderStatusCodes.Draft => "草稿订单不可标记", OrderStatusCodes.Deleted => "已删除订单不可标记", OrderStatusCodes.Claimed => "已是理赔件", _ => "订单状态不允许标记" }; }