Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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;
        }