internal static void ExecutePackage(ProjectItem pi, string DataFlowGUID) { try { if (pi.DTE.Mode == vsIDEMode.vsIDEModeDebug) { MessageBox.Show("Please stop the debugger first."); return; } Window w = pi.Open(BIDSViewKinds.Designer); //opens the designer w.Activate(); IDesignerHost designer = w.Object as IDesignerHost; if (designer == null) { return; } EditorWindow win = (EditorWindow)designer.GetService(typeof(Microsoft.DataWarehouse.ComponentModel.IComponentNavigator)); if (win == null || (win.PropertiesLinkComponent as Package) == null) { MessageBox.Show("Package designer is not open yet. Try again in a moment."); return; } Package package = (Package)win.PropertiesLinkComponent; EditorWindow.EditorView view = null; if (PerformanceEditorViews.ContainsKey(win)) { PerformanceTab tab = PerformanceEditorViews[win]; view = tab.ParentEditorView; if (tab.IsExecuting) { MessageBox.Show("You may not execute the package until the previous execution of the package completes."); } else { if (DataFlowGUID == null) { tab.ExecutePackage(); } else { tab.BreakdownPipelinePerformance(DataFlowGUID); } } } else { win.ActiveViewChanged += new EventHandler(win_ActiveViewChanged); PerformanceTabControlDelegateContainer delegateContainer = new PerformanceTabControlDelegateContainer(); view = new EditorWindow.EditorView(new EditorViewLoadDelegate(delegateContainer.CreatePerformanceTabControl), "Performance", "Visualize SSIS package execution performance (BIDS Helper)", 0, BIDSHelper.Resources.Common.Performance); delegateContainer.win = win; delegateContainer.view = view; delegateContainer.projectItem = pi; delegateContainer.DataFlowGUID = DataFlowGUID; win.Views.Add(view); win.EnsureViewIsLoaded(view); //delegate will be called here } win.SelectedView = view; } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
internal static void ExecutePackage(ProjectItem pi, string DataFlowGUID) { try { if (pi.DTE.Mode == vsIDEMode.vsIDEModeDebug) { MessageBox.Show("Please stop the debugger first."); return; } Window w = pi.Open(BIDSViewKinds.Designer); //opens the designer w.Activate(); IDesignerHost designer = w.Object as IDesignerHost; if (designer == null) return; EditorWindow win = (EditorWindow)designer.GetService(typeof(Microsoft.DataWarehouse.ComponentModel.IComponentNavigator)); if (win == null || (win.PropertiesLinkComponent as Package) == null) { MessageBox.Show("Package designer is not open yet. Try again in a moment."); return; } Package package = (Package)win.PropertiesLinkComponent; EditorWindow.EditorView view = null; if (PerformanceEditorViews.ContainsKey(win)) { PerformanceTab tab = PerformanceEditorViews[win]; view = tab.ParentEditorView; if (tab.IsExecuting) { MessageBox.Show("You may not execute the package until the previous execution of the package completes."); } else { if (DataFlowGUID == null) tab.ExecutePackage(); else tab.BreakdownPipelinePerformance(DataFlowGUID); } } else { win.ActiveViewChanged += new EventHandler(win_ActiveViewChanged); PerformanceTabControlDelegateContainer delegateContainer = new PerformanceTabControlDelegateContainer(); view = new EditorWindow.EditorView(new EditorViewLoadDelegate(delegateContainer.CreatePerformanceTabControl), "Performance", "Visualize SSIS package execution performance (BIDS Helper)", 0, BIDSHelper.Resources.Common.Performance); delegateContainer.win = win; delegateContainer.view = view; delegateContainer.projectItem = pi; delegateContainer.DataFlowGUID = DataFlowGUID; win.Views.Add(view); win.EnsureViewIsLoaded(view); //delegate will be called here } win.SelectedView = view; } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }