public void UploadAll(FtpDeploySettings settings) { var baseArtifactsPath = settings.ArtifactsPath; var baseArtifactsPathLength = baseArtifactsPath.Length; UploadAllRecursive(baseArtifactsPathLength, baseArtifactsPath, settings); while (_requestNumber != 0) { Thread.SpinWait(1); } }
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)); }
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); } } }
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); } }
public void MakeDirectory(string ftpUri, FtpDeploySettings settings) { _log.Information($"Making directory: {ftpUri}\n"); _webService.MakeDirectory(ftpUri, settings.FtpUserName, settings.FtpPassword); }
public void UploadFile(string ftpUri, string filePath, FtpDeploySettings settings) { _webService.UploadFile(ftpUri, filePath, settings.FtpUserName, settings.FtpPassword); Interlocked.Decrement(ref _requestNumber); }
public List <DirectoryDetails> ListDirectoryDetails(string ftpUri, FtpDeploySettings settings) { var directoryDetailsList = _webService.ListDirectoryDetails(ftpUri, settings.FtpUserName, settings.FtpPassword); return(directoryDetailsList); }