Example #1
0
        public void UploadAll(FtpDeploySettings settings)
        {
            var baseArtifactsPath       = settings.ArtifactsPath;
            var baseArtifactsPathLength = baseArtifactsPath.Length;

            UploadAllRecursive(baseArtifactsPathLength, baseArtifactsPath, settings);

            while (_requestNumber != 0)
            {
                Thread.SpinWait(1);
            }
        }
Example #2
0
        public void DeleteAll(FtpDeploySettings settings)
        {
            var baseFtpUri          = settings.FtpUri;
            var directoriesToRemove = new List <string>();

            DeleteAllRecursive(baseFtpUri, settings, directoriesToRemove);

            foreach (var directory in directoriesToRemove)
            {
                RemoveDirectory(directory, settings);
            }

            while (_requestNumber != 0)
            {
                Thread.SpinWait(1);
            }
        }
        public FtpServiceTests()
        {
            _mockLog      = Substitute.For <ICakeLog>();
            _testSettings = new FtpDeploySettings()
            {
                FtpUri        = "ftp://www.test.com",
                FtpUserName   = "******",
                FtpPassword   = "******",
                ArtifactsPath = "./TestArtifacts"
            };

            _testWebService = Substitute.For <IWebService>();
            var testWebService = new TestWebService();

            _testWebService.ListDirectoryDetails("ftp://www.test.com", Arg.Any <string>(), Arg.Any <string>())
            .Returns(testWebService.ListDirectoryDetails("ftp://www.test.com", null, null));
            _testWebService.ListDirectoryDetails("ftp://www.test.com/testDirectory", Arg.Any <string>(), Arg.Any <string>())
            .Returns(testWebService.ListDirectoryDetails("ftp://www.test.com/testDirectory", null, null));
        }
Example #4
0
        public void DeleteAllRecursive(string ftpUri, FtpDeploySettings settings, List <string> directoriesToRemove)
        {
            var directoryDetailsList = ListDirectoryDetails(ftpUri, settings);

            foreach (var directoryDetails in directoryDetailsList)
            {
                if (directoryDetails.Type == DirectoryDetailsType.File)
                {
                    var filePath = ftpUri + "/" + directoryDetails.Name;
                    Interlocked.Increment(ref _requestNumber);
                    _log.Information($"Deleting file: {filePath}\n");
                    Task.Factory.StartNew(() => DeleteFile(filePath, settings));
                }
                else if (directoryDetails.Type == DirectoryDetailsType.Directory)
                {
                    var directoryPath = ftpUri + "/" + directoryDetails.Name;
                    DeleteAllRecursive(directoryPath, settings, directoriesToRemove);
                    directoriesToRemove.Add(directoryPath);
                }
            }
        }
Example #5
0
        public void UploadAllRecursive(int baseArtifactsPathLength, string directoryPath, FtpDeploySettings settings)
        {
            var baseDirectory         = new DirectoryInfo(directoryPath);
            var adjustedDirectoryPath = directoryPath.Substring(baseArtifactsPathLength);

            foreach (var file in baseDirectory.EnumerateFiles())
            {
                var ftpFilePath = settings.FtpUri + adjustedDirectoryPath + "/" + file.Name;
                Interlocked.Increment(ref _requestNumber);
                _log.Information($"Uploading file: {ftpFilePath}\n");
                Task.Factory.StartNew(() => UploadFile(ftpFilePath, file.FullName, settings));
            }

            foreach (var directory in baseDirectory.EnumerateDirectories())
            {
                var newDirectoryPath = directoryPath + "/" + directory.Name;
                var ftpDirectoryPath = settings.FtpUri + newDirectoryPath.Substring(baseArtifactsPathLength);

                MakeDirectory(ftpDirectoryPath, settings);
                UploadAllRecursive(baseArtifactsPathLength, newDirectoryPath, settings);
            }
        }
Example #6
0
 public void MakeDirectory(string ftpUri, FtpDeploySettings settings)
 {
     _log.Information($"Making directory: {ftpUri}\n");
     _webService.MakeDirectory(ftpUri, settings.FtpUserName, settings.FtpPassword);
 }
Example #7
0
 public void UploadFile(string ftpUri, string filePath, FtpDeploySettings settings)
 {
     _webService.UploadFile(ftpUri, filePath, settings.FtpUserName, settings.FtpPassword);
     Interlocked.Decrement(ref _requestNumber);
 }
Example #8
0
        public List <DirectoryDetails> ListDirectoryDetails(string ftpUri, FtpDeploySettings settings)
        {
            var directoryDetailsList = _webService.ListDirectoryDetails(ftpUri, settings.FtpUserName, settings.FtpPassword);

            return(directoryDetailsList);
        }