Ejemplo n.º 1
0
        private void DeployCheckedItems_Worker(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker   worker              = sender as BackgroundWorker;
            List <object>      args                = e.Argument as List <object>;
            List <VersionNode> versionNodes        = args[0] as List <VersionNode>;
            string             deploymentDirectory = args[1] as string;
            string             deploymentTarget    = args[2] as string;

            // We are going to attemp to copy all check clients to their respective deployment directories
            for (int i = 0; i < versionNodes.Count && !worker.CancellationPending; i++)
            {
                VersionNode target = versionNodes[i];

                // Set our current directory in the subDirectory of this versions type
                string deployTarget = target.Type + "\\" + deploymentTarget;

                // Clear out any previous deployment
                if (DosUtils.DirectoryExist(deploymentDirectory + "\\" + deployTarget))
                {
                    worker.ReportProgress(i * 100 / versionNodes.Count, "Removing previous (" + target.Type + ") build");

                    if (!DosUtils.DirectoryDelete(deploymentDirectory + "\\" + deployTarget))
                    {
                        throw new Exception(DosUtils.GetLastError());
                    }
                }

                worker.ReportProgress(i * 100 / versionNodes.Count, "Copying new(" + target.Type + ") build named:" + target.Name);

                // Copy our new deployment
                if (!DosUtils.DirectoryCopyFast(target.SourceDirectory, deploymentDirectory + "\\" + deployTarget, true))
                {
                    throw new Exception(DosUtils.GetLastError());
                }

                worker.ReportProgress(i * 100 / versionNodes.Count, target.Type + " named:" + target.Name + " has been deployed!");
            }
        }