/// <summary> /// 检查模板是否合法 /// 【检验 并发】 /// </summary> /// <returns>返回操作结果</returns> public string TemplateValidate() { // 用于控制并发,在开始的时候,压入栈,开始的时候压入栈,然后遇到并发结束出栈这出栈。 // 如果并发结束出栈,而并发开始还没有加入,则记录错。 var startAcvity = XmlHelper.GetStartActivit(_template); if (startAcvity == null) { return("模板必须有起始节点"); } var model = new RoutingModel(_template, startAcvity, true); var validatePlugs = new Dictionary <ValidateFunEnum, IRoutingValidate>() { { ValidateFunEnum.ParallelValidate, new ParallelRoutingValidate() }, { ValidateFunEnum.PropertyValidate, new PropertyRoutingValidate() } }; TransGraph(model, validatePlugs); var result = new ResultInfo(); foreach (var iValidate in validatePlugs) { var validateResult = iValidate.Value.GetResult(); if (validateResult.HasError) { result.AppendError(validateResult.GetResult(Environment.NewLine)); } } return(result.HasError ? result.GetResult(Environment.NewLine) : "并发验证通过"); }