Exemplo n.º 1
0
        public void TestAssembleCompositeDirectory()
        {
            var origSrcDir = @"D:\T001";
            var currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder");
            var targetDir = @"D:\T002";
            var fU = new FileUtility(new LogAndDisplayController(new AppConfigurationModes{ExecutionMode = AppExecutionMode.ExecuteWithoutLog}));
            var nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir);

            Assert.IsTrue(nTarget == @"D:\T002\TestFolder","T91");

            origSrcDir = @"D:\T001\TestFolder";
            targetDir = @"D:\T002";
            currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin\");
            nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir);
            Assert.IsTrue(nTarget == @"D:\T002\Bin");

            origSrcDir = @"D:\T001\";
            currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin");
            targetDir = @"D:\T002";
            nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir);

            Assert.IsTrue(nTarget == @"D:\T002\TestFolder\Bin","T92");

            origSrcDir = @"D:\T001";
            currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin");
            targetDir = @"D:\T002\";
            nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir);

            Assert.IsTrue(nTarget == @"D:\T002\TestFolder\Bin","T93");

            origSrcDir = @"D:\T001\";
            currSrcDir = new DirectoryInfo(@"D:\T001\TestFolder\Bin\");
            targetDir = @"D:\T002\";
            nTarget = fU.ComputeTargetDirectoryFromSourceDirectory(targetDir, origSrcDir, currSrcDir);

            Assert.IsTrue(nTarget == @"D:\T002\TestFolder\Bin","T94");
        }
Exemplo n.º 2
0
        private void DoCopyCommand(CopyFileCommand cmd, string currSourceDir)
        {
            var uF = new FileUtility(_log);

              var uH = new HelperUtility();

            var currSrcInfo = uH.ConvertStringPathToInfo(currSourceDir);

            if(currSrcInfo==null)
            {
                throw new Exception(String.Format("Invalid Srouce Directory Info: {0}", currSourceDir));
            }

            var newTargetDir = uF.ComputeTargetDirectoryFromSourceDirectory(cmd.TargetDirectory,cmd.SourceDirectory, currSrcInfo);

            if(newTargetDir == null)
            {
                return;
            }

            if(!Directory.Exists(newTargetDir))
            {
                try
                {
                    Directory.CreateDirectory(newTargetDir);
                }
                catch(Exception e)
                {
                    _log.LogAndDisplay(String.Format("Error Creating Target Directory: {0}",newTargetDir),e,LoggerMode.LogAndDisplayConsoleLine);

                    return;
                }
            }

            var newTargInfo = uH.ConvertStringPathToInfo(newTargetDir);

            if(newTargInfo==null)
            {
                _log.LogAndDisplay(String.Format("Invalid Target Directory Info: {0}", newTargetDir),LoggerMode.LogAndDisplayConsoleLine);

                return;
            }

            _log.DisplayCopyDirectoryStatus(currSrcInfo.FullName, newTargInfo.FullName);

            AssignCopyOperationByCopyMode(cmd, currSrcInfo, newTargInfo);

            if(!cmd.CommandParameters.CopySubdirectories)
            {
                return;
            }

            var dirs = currSrcInfo.GetDirectories();

            if(dirs.Length < 1)
            {
                return;
            }

            foreach (var dir in dirs)
            {
                DoCopyCommand(cmd, uH.RemoveTrailingDirectorySlash(dir.FullName));
            }
        }