protected PackageGroupCollection  BuildPackageGroupCollection(string pathToProject)
    {
        string[] path    = pathToProject.Split('/');
        string   catalog = path[0];
        string   folder  = path[1];
        string   project = path[2];

        Server server = new Server(ssisServer);

        IntegrationServices service = new IntegrationServices(server);

        Catalog catalogObject = service.Catalogs[catalog];

        CatalogFolder folderObject = catalogObject.Folders[folder];

        ProjectInfo            projectObject = folderObject.Projects[project];
        PackageGroupCollection collection    = new PackageGroupCollection();

        foreach (Microsoft.SqlServer.Management.IntegrationServices.PackageInfo p in projectObject.Packages)
        {
            PackageGroup g = new PackageGroup(p, server.Name, catalog, folder, project);
            collection.Add(g);
        }

        return(collection);
    }
 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
 {
     System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex(@"\/");
     if (regEx.Matches(TreeView1.SelectedNode.ValuePath).Count == 2)
     {
         PackageGroupCollection pgc = BuildPackageGroupCollection(TreeView1.SelectedNode.ValuePath);
         LoadGridView(pgc);
         Session.Add("pgc", pgc);
     }
 }
 protected void GridView1_RowCommand(object sender,
                                     GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Execute")
     {
         pgc = (PackageGroupCollection)Session["pgc"];
         PackageGroup pg      = pgc.Item(Convert.ToInt32(e.CommandArgument));
         Thread       oThread = new System.Threading.Thread(new
                                                            System.Threading.ThreadStart(pg.ExecPackage));
         oThread.Start();
         LoadGridView(pgc);
     }
 }
 protected void LoadGridView(PackageGroupCollection pgc)
 {
     GridView1.DataSource = pgc;
     GridView1.DataBind();
 }