internal WorkflowConverter(WorkflowExtractor extractor, RulesExtractor rulesExtractor) { if (extractor == null) { throw new ArgumentNullException("extractor"); } if (rulesExtractor == null) { throw new ArgumentNullException("rulesExtractor"); } _generatorsTypes = new List <GeneratorTypes>(); if (extractor.Activities == null) { extractor.GetActivityTree(); } _extractor = extractor; _rulesExtractor = rulesExtractor; }
private void ProcessWorkflow() { //TODO: Find a better way of doing this... if (treeLoaded == null) return; var inputFile = (BindItem)treeLoaded.Nodes[0].Tag; var outputDocument = Program.Settings.Find<DocumentSettings>(); outputDocument.SetInstance(FileUtils.GetFileNameOnly(inputFile.Name), Environment.CurrentDirectory, OutputFormat.Docx); if (_assemblyResolver == null) return; var workflowExtractor = new WorkflowExtractor(_assemblyResolver); workflowExtractor.OnMessageReceived += WorkflowExtractorOnMessageReceived; workflowExtractor.GetActivityTree(); RulesExtractor rulesExtractor = RulesExtractor.Create(_assemblyResolver); rulesExtractor.OnMessageReceived += RulesExtractorOnMessageReceived; using (var rulesConverter = new RulesConverter(rulesExtractor, _runAsync)) { rulesConverter.OnMessageReceived += RulesConverterOnMessageReceived; rulesConverter.OnProcessingComplete += RulesConverterOnProcessingComplete; } using (var converter = new WorkflowConverter(workflowExtractor, rulesExtractor)) { converter.OnMessageReceived += ConverterOnMessageReceived; converter.OnProcessingComplete += ConverterOnProcessingComplete; converter.AddOutput<Generators.Workflow.WfDocGenerator>(outputDocument); converter.Generate(); } }