PickBillCreatorFacade.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Microsoft.Extensions.Options;
  2. namespace Admin.NET.Plugin.AiDOP.WorkOrder;
  3. /// <summary>
  4. /// WP9 · 按 <see cref="AidopPickBillOptions.Mode"/> 选择 Local / Mes 建单实现。
  5. /// 注入点应使用本类型(或 <see cref="IPickBillCreator"/>),勿直接多实现竞注。
  6. /// </summary>
  7. public sealed class PickBillCreatorFacade : IPickBillCreator, ITransient
  8. {
  9. private readonly AidopPickBillOptions _opt;
  10. private readonly WorkOrderPickBillService _local;
  11. private readonly MesPickBillCreator _mes;
  12. public PickBillCreatorFacade(
  13. IOptions<AidopPickBillOptions> opt,
  14. WorkOrderPickBillService local,
  15. MesPickBillCreator mes)
  16. {
  17. _opt = opt.Value;
  18. _local = local;
  19. _mes = mes;
  20. }
  21. public Task<PickBillResult> CreateAsync(
  22. long tenantId,
  23. string domain,
  24. string workOrd,
  25. string account,
  26. CancellationToken ct = default)
  27. {
  28. if (_opt.IsMes)
  29. return _mes.CreateAsync(tenantId, domain, workOrd, account, ct);
  30. return _local.CreateAsync(tenantId, domain, workOrd, account, ct);
  31. }
  32. }