public WfDocGenerator(List <ActivityChainModel> activities, RulesExtractor rulesExtractor, Settings Settings) : base(activities, rulesExtractor, Settings) { if (Settings.GetLanguage() < OutputFormat.Docx) { throw new NotSupportedException("Output Language not supported:" + Settings.GetLanguage()); } Name = "Workflow to Code Generator"; }
private void ProcessRules(OutputFormat language, string ruleInput) { try { var outputCode = Program.Settings.Find <CodeSettings>(); outputCode.SetInstance(FileUtils.GetFileNameOnly(ruleInput), Environment.CurrentDirectory, language); var outputDocument = Program.Settings.Find <DocumentSettings>(); outputDocument.SetInstance(FileUtils.GetFileNameOnly(ruleInput), Environment.CurrentDirectory, OutputFormat.Docx); if (_processAssembly != null) { RulesExtractor rulesExtractor; if (_processAssembly.Value) // assembly loading { rulesExtractor = RulesExtractor.Create(_assemblyResolver.GetResourceData(ruleInput)); rulesExtractor.OnMessageReceived += RulesExtractorOnMessageReceived; } else // rule file loading { rulesExtractor = RulesExtractor.CreateFromFile(ruleInput); rulesExtractor.OnMessageReceived += RulesExtractorOnMessageReceived; } using (var rulesConverter = new RulesConverter(rulesExtractor, _runAsync)) { rulesConverter.AddOutput <RulesCodeGenerator>(outputCode); if (_generateWordDocumentAutomatically) { rulesConverter.AddOutput <RulesDocGenerator>(outputDocument); } rulesConverter.OnMessageReceived += RulesConverterOnMessageReceived; rulesConverter.OnProcessingComplete += RulesConverterOnProcessingComplete; rulesConverter.Generate(); } } } catch (WorkflowMarkupSerializationException workflowException) { UpdateError(this, new MessageEventArgs(String.Format("There is error in retrieving XOML at Line: {0} Position: {1}.", workflowException.LineNumber, workflowException.LinePosition), Base.EventType.Error)); UpdateOutput(this, new MessageEventArgs("[ERROR]: Recommended fix- Copy the rules and edit XOML based on error and retry with new rules file", Base.EventType.Error)); UpdateOutput(this, new MessageEventArgs("Generation Failed!", Base.EventType.Error)); } catch (Exception ex) { UpdateError(this, new MessageEventArgs(ex.Message, Base.EventType.Error)); UpdateOutput(this, new MessageEventArgs("Generation Failed!", Base.EventType.Error)); } }
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(); } }
protected WorkflowOutputGenerator(List <ActivityChainModel> activities, RulesExtractor rulesExtractor, Settings Settings) { if (activities == null) { throw new ArgumentNullException("activities"); } if (rulesExtractor == null) { throw new ArgumentNullException("rulesExtractor"); } if (Settings == null) { throw new ArgumentNullException("Settings"); } _activities = activities; _settings = Settings; _rulesExtractor = rulesExtractor; }