namespace Oms.Application.Services.Orders.Issues; public enum AutoTriggerTiming { OrderCreate, Inbound, Outbound } public static class AutoTriggerTimingCodes { public const string OrderCreate = "order_create"; public const string Inbound = "inbound"; public const string Outbound = "outbound"; public static bool Matches(string? triggerTiming, AutoTriggerTiming timing) { if (string.IsNullOrWhiteSpace(triggerTiming)) { return false; } var text = triggerTiming.Trim(); return timing switch { AutoTriggerTiming.OrderCreate => ContainsAny(text, "下单", "order", "create", "parcel", "预报", "forecast"), AutoTriggerTiming.Inbound => ContainsAny(text, "入库", "inbound", "receive", "收货"), AutoTriggerTiming.Outbound => ContainsAny(text, "出库", "outbound", "ship", "发货"), _ => false }; } private static bool ContainsAny(string text, params string[] keywords) { foreach (var keyword in keywords) { if (text.Contains(keyword, StringComparison.OrdinalIgnoreCase)) { return true; } } return false; } }