public static Dictionary<string, string> GetParameters(SingleWorkflowStep step) { var pars = new Dictionary<string, string>(); foreach (var item in step.WorkflowSteps) { var param = item as ParamStep; if (param!=null) { var realValue = _setupFile.GetKey(param.Value); pars.Add(param.Name.ToLowerInvariant(), realValue); } } return pars; }
private static void LoadRelativeXmlTemplate(SingleWorkflowStep root, XmlDocument xmlDoc) { var rootNode = xmlDoc.GetElementsByTagName("root")[0]; var rootDll = rootNode.GetChildrenByTag("dlls"); if (rootDll.Count == 1) { var rootDlls = rootNode.GetChildrenByTag("dlls")[0]; ExtractDlls(rootDlls); } var rootConfig = rootNode.GetChildrenByTag("configs"); if (rootConfig.Count == 1) { var rootConfigs = rootNode.GetChildrenByTag("configs")[0]; ExtractConfigs(rootConfigs); } var rootTemplates = rootNode.GetChildrenByTag("templates"); if(rootTemplates.Count ==1) { var rootTemplate = rootTemplates[0]; ExtractTemplates(rootTemplate); } var baseTemplates = rootNode.GetChildrenByTag("baseTemplates"); if (baseTemplates.Count == 1) { var baseTemplate = rootNode.GetChildrenByTag("baseTemplates")[0]; ExtractBaseTemplates(baseTemplate); } var workflows = rootNode.GetChildrenByTag("workflow"); if (workflows.Count == 1) { var workflow = workflows[0]; ExtractWrokflow(workflow, root); } }
private static void LoadExternalWorkflowSteps(string path, SingleWorkflowStep root, string assemblyPath) { string externalSteps; if (path.StartsWith("res:")) { externalSteps = LoadAssemblyResource(path, assemblyPath); } else { _templatesDirectories.Add(path); externalSteps = File.ReadAllText(path); } var xmlDoc = new XmlDocument(); //* create an xml document object. xmlDoc.LoadXml(externalSteps); //* load the XML document from the specified file. /*var workflow = xmlDoc.GetElementsByTagName("workflow")[0]; ExtractWrokflow(workflow, root);*/ LoadRelativeXmlTemplate(root, xmlDoc); }
private static void ExtractWrokflow(XmlNode workflowRoot, SingleWorkflowStep root) { var workflowSteps = workflowRoot.GetChildrenByTag(new List<string>(_availableStepsSpecs.Keys).ToArray()); for (int i = 0; i < workflowSteps.Count; i++) { var workflowStep = workflowSteps[i]; var newStep = SetupStepFactory.CreateStep(workflowStep); if (workflowStep.GetAttribute("include") != null) { LoadExternalWorkflowSteps(workflowStep.GetAttribute("include"), newStep, workflowStep.GetAttribute("assemblyPath")); } ExtractWrokflow(workflowStep, newStep); root.WorkflowSteps.Add(newStep); } }
public void AddUndo(SingleWorkflowStep undo) { if (Undoing) return; if (undo != null) Rollback.Add(undo); }