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);
            }
        }
コード例 #2
0
        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);
            }
        }