public SubFlowExecution GetSubflowExecution() { var objectResolver = new ObjectResolver(Package.Configurations.OfType <StepConfigurationBase>().ToList(), Connections); var subDiagram = this.Package.SubDiagrams.Where(t => t.ParentItemId == doubleClickedMainflowDesignerItem.ID).FirstOrDefault(); var diagramDeserializer = new SDK.Diagram.DiagramDeserializer(moduleLoader.Modules, subDiagram.Diagram); var flowGraph = new FlowGraph(diagramDeserializer.DesignerItems, diagramDeserializer.Connections); var subFlowExecution = new SubFlowExecution(null, null, objectResolver, flowGraph); return(subFlowExecution); }
public FlowManager(ObservableCollection <ConnectionConfigurationBase> connectionConfigurations, List <ModuleDescription> loadedModules, Package package) { this.connectionConfigurations = connectionConfigurations; this.loadedModules = loadedModules; this.package = package; IntegrationTool.SDK.Diagram.DiagramDeserializer deserializer = new SDK.Diagram.DiagramDeserializer(this.loadedModules, this.package.Diagram.Diagram); this.connectionList = deserializer.Connections; foreach (DesignerItemBase item in deserializer.DesignerItems) { StepConfiguration configuration = package.Configurations.FirstOrDefault(t => t.ConfigurationId == item.ID) as StepConfiguration; ItemWorker itemWorker = InitializeItemWorker(item, configuration); itemWorkers.Add(itemWorker); } }
void bgw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { var itemWorker = e.Argument as ItemWorker; var designerItem = itemWorker.DesignerItem; ItemLog itemLog = ItemLog.CreateNew(designerItem.ID, designerItem.ItemLabel, designerItem.ModuleDescription.ModuleType.Name, DateTime.Now); ObjectResolver objectResolver = new ObjectResolver(this.package.Configurations.OfType <StepConfigurationBase>().ToList(), connectionConfigurations); try { if (designerItem.ModuleDescription.Attributes.ContainsSubConfiguration) { SerializedDiagram subDiagram = this.package.SubDiagrams.FirstOrDefault(t => t.ParentItemId == designerItem.ID); if (subDiagram != null) { IntegrationTool.SDK.Diagram.DiagramDeserializer deserializer = new SDK.Diagram.DiagramDeserializer(this.loadedModules, subDiagram.Diagram); var flowGraph = new FlowGraph(deserializer.DesignerItems, deserializer.Connections); SubFlowExecution subFlowExecution = new SubFlowExecution(itemWorker, itemLog, objectResolver, flowGraph); subFlowExecution.Execute(this.runLog); } } else { ItemExecution itemExecution = new ItemExecution(itemWorker, objectResolver, this.runLog); itemExecution.Execute(); } } catch (Exception ex) { itemLog.ExecutionError = ex.ToString(); } itemLog.EndTime = DateTime.Now; lock (this.runLog.ItemLogs) { this.runLog.ItemLogs.Add(itemLog); } e.Result = itemLog; }