using Hotline.Caching.Interfaces; using Hotline.FlowEngine.Workflows; using Hotline.Share.Dtos.FlowEngine.Workflow; using Hotline.Share.Enums.FlowEngine; using XF.Domain.Exceptions; namespace Hotline.Tests.Domain.Workflow; public class WorkflowDomainServiceTest { private readonly IWorkflowDomainService _workflowDomainService; private readonly IWfModuleCacheManager _wfModuleCacheManager; public WorkflowDomainServiceTest( IWorkflowDomainService workflowDomainService, IWfModuleCacheManager wfModuleCacheManager) { _workflowDomainService = workflowDomainService; _wfModuleCacheManager = wfModuleCacheManager; } public async Task StartAsyncTest(string definitionModuleCode) { var wfModule = await _wfModuleCacheManager.GetWorkflowModuleAsync(definitionModuleCode, default); if (wfModule == null) throw UserFriendlyException.SameMessage("无效流程模块编码"); if (wfModule.Definition is null) throw new UserFriendlyException($"{definitionModuleCode} 未配置流程模板", "未配置流程模板"); var definition = wfModule.Definition; if (definition == null) throw new UserFriendlyException("无效模板编码"); if (definition.Status is not EDefinitionStatus.Enable) throw new UserFriendlyException("该模板不可用"); //如果发起会签需检查是否支持发起会签 var startStepDefine = definition.FindStartStepDefine(); var nextStep = definition.FindStepDefine(startStepDefine.NextSteps.First().Code); //StartWorkflowDto dto, string externalId,DateTime? expiredTime = null, var dto = new StartWorkflowDto { DefinitionModuleCode = definitionModuleCode, Title = "测试流程开启", NextStepCode = nextStep.Code, NextStepName = nextStep.Name, }; //_workflowDomainService.StartAsync() } }