Fix ultimi test x FTP, ora va implementato adapter

This commit is contained in:
Samuele Locatelli
2024-10-04 17:19:54 +02:00
parent fae5c10d20
commit d8c62a8a76
2 changed files with 36 additions and 12 deletions
+2 -2
View File
@@ -341,7 +341,7 @@ namespace EgwProxy.Ftp.Test
ftpClient.createDir(remoteDir);
}
var mirrorDone = ftpClient.sendDir(localDir, remoteDir);
var mirrorDone = ftpClient.sendDir(localDir, remoteDir, true);
esitoStep = mirrorDone ? $"Directory {localDir} mirrored L2R!" : $"Error: {remoteDir} NOT mirrored!";
}
@@ -362,7 +362,7 @@ namespace EgwProxy.Ftp.Test
var preTest = ftpClient.dirExists(remoteDir);
if (preTest)
{
var mirrorDone = ftpClient.getDir(localDir, remoteDir);
var mirrorDone = ftpClient.getDir(localDir, remoteDir, true);
esitoStep = mirrorDone ? $"Directory {remoteDir} mirrored R2L!" : $"Error: {remoteDir} NOT mirrored!";
}
else
+34 -10
View File
@@ -7,7 +7,9 @@ using System.Net.Security;
namespace EgwProxy.Ftp
{
/// <summary>
/// Client per operazioni FTP, basato su FluentFTP: https://github.com/robinrodricks/FluentFTP/wiki/Quick-Start-Example
/// Client per operazioni FTP, basato su FluentFTP:
/// https://github.com/robinrodricks/FluentFTP
/// https://github.com/robinrodricks/FluentFTP/wiki/Quick-Start-Example
/// </summary>
public class Manager
{
@@ -40,6 +42,7 @@ namespace EgwProxy.Ftp
{
client = new FtpClient(server);
}
client.Config.RetryAttempts = 3;
}
}
@@ -136,15 +139,23 @@ namespace EgwProxy.Ftp
/// </summary>
/// <param name="localDir">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
public bool getDir(string localDir, string remoteDir)
/// <param name="forceUpdate">Indica se sia richeisto udpate post mirroring</param>
public bool getDir(string localDir, string remoteDir, bool forceUpdate = false)
{
bool answ = false;
tryConnect();
try
{
tryConnect();
//var result = client.DownloadDirectory(localDir, remoteDir, FtpFolderSyncMode.Mirror, FtpLocalExists.Overwrite, FtpVerify.Retry);
// upload della folder + files, cancellazione extra files = mirroring
var result = client.DownloadDirectory(localDir, remoteDir, FtpFolderSyncMode.Mirror, FtpLocalExists.Overwrite, FtpVerify.Delete);
answ = (result != null && result.Count > 0);
List<FtpResult> result;
result = client.DownloadDirectory(localDir, remoteDir, FtpFolderSyncMode.Mirror);
if (forceUpdate)
{
result = client.DownloadDirectory(localDir, remoteDir, FtpFolderSyncMode.Update);
}
//answ = (result != null && result.Count > 0);
answ = result != null && result.Where(x => !x.IsSuccess).Count() == 0;
}
catch
{ }
@@ -199,13 +210,26 @@ namespace EgwProxy.Ftp
/// </summary>
/// <param name="localDir">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
public bool sendDir(string localDir, string remoteDir)
/// <param name="forceUpdate">Indica se sia richeisto udpate post mirroring</param>
public bool sendDir(string localDir, string remoteDir, bool forceUpdate = false)
{
bool answ = false;
tryConnect();
// upload della folder + files, cancellazione extra files = mirroring
var result = client.UploadDirectory(localDir, remoteDir, FtpFolderSyncMode.Mirror, FtpRemoteExists.OverwriteInPlace, FtpVerify.Delete);
answ = (result != null && result.Count > 0);
try
{
tryConnect();
//var result = client.UploadDirectory(localDir, remoteDir, FtpFolderSyncMode.Mirror, FtpRemoteExists.OverwriteInPlace, FtpVerify.Retry);
// upload della folder + files, cancellazione extra files = mirroring
List<FtpResult> result;
result = client.UploadDirectory(localDir, remoteDir, FtpFolderSyncMode.Mirror);
if (forceUpdate)
{
result = client.UploadDirectory(localDir, remoteDir, FtpFolderSyncMode.Update);
}
//answ = (result != null && result.Count > 0);
answ = result!=null && result.Where(x => !x.IsSuccess).Count()==0;
}
catch
{ }
// chiudo!
client.Disconnect();
return answ;