S8DatasetStatus.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. namespace Admin.NET.Plugin.AiDOP.Service.S8.Rules.DataAccess;
  2. /// <summary>
  3. /// 数据集状态。
  4. ///
  5. /// 分两层,不要混用:
  6. /// · <b>声明状态</b>(写在 <see cref="S8DatasetDefinition.Status"/> 里)只有 DEFINED / DISABLED,
  7. /// 表达"这个数据集定义本身是否还在用";
  8. /// · <b>有效状态</b>(诊断时计算)额外有 NOT_DEFINED / PROVIDER_MISSING / READY,
  9. /// 表达"结合当前 Provider 注册情况,它现在能不能用"。
  10. ///
  11. /// 这样才能把 Batch 1 混为一谈的两件事分开:
  12. /// "数据集根本不存在" vs "数据集已定义但供数实现还没上线"。
  13. /// </summary>
  14. public static class S8DatasetStatus
  15. {
  16. /// <summary>声明状态:已定义且在用。</summary>
  17. public const string Defined = "DEFINED";
  18. /// <summary>声明状态:定义仍在但已停用,不可用于规则执行。</summary>
  19. public const string Disabled = "DISABLED";
  20. /// <summary>有效状态:Catalog 中查无此数据集。</summary>
  21. public const string NotDefined = "NOT_DEFINED";
  22. /// <summary>有效状态:已定义、在用,但当前没有 Provider 实现。</summary>
  23. public const string ProviderMissing = "PROVIDER_MISSING";
  24. /// <summary>有效状态:已定义、在用、Provider 已注册,可用于规则执行。</summary>
  25. public const string Ready = "READY";
  26. /// <summary>声明状态是否合法。</summary>
  27. public static bool IsDeclarable(string? status) =>
  28. string.Equals(status, Defined, StringComparison.OrdinalIgnoreCase)
  29. || string.Equals(status, Disabled, StringComparison.OrdinalIgnoreCase);
  30. }