VberWorkflowRegistry.cs 886 B

12345678910111213141516171819202122232425262728293031
  1. using Abp;
  2. using Abp.Dependency;
  3. using System;
  4. using WorkflowCore.Interface;
  5. namespace VberZero.Workflow
  6. {
  7. public class VberWorkflowRegistry : IVberWorkflowRegistry, ISingletonDependency
  8. {
  9. private readonly IWorkflowRegistry _workflowRegistry;
  10. private readonly IIocManager _iocManager;
  11. public VberWorkflowRegistry(IWorkflowRegistry workflowRegistry, IIocManager iocManager)
  12. {
  13. _workflowRegistry = workflowRegistry;
  14. _iocManager = iocManager;
  15. }
  16. public void RegisterWorkflow(Type type)
  17. {
  18. var workflow = _iocManager.Resolve(type);
  19. if (!(workflow is IVberWorkflow vberWorkflow))
  20. {
  21. throw new AbpException("RegisterType 必须从 VberWorkflow 实现!");
  22. }
  23. _workflowRegistry.RegisterWorkflow(vberWorkflow);
  24. }
  25. }
  26. }