public override void GetSource(IIntegrationResult result) { Util.Log.Info(result.HasModifications().ToString()); ftp = new FtpLib(result.BuildProgressInformation); string remoteFolder = FtpFolderName; ftp.LogIn(ServerName, UserName, Password.PrivateValue, UseActiveConnectionMode); if (!FtpFolderName.StartsWith("/")) { remoteFolder = System.IO.Path.Combine(ftp.CurrentWorkingFolder(), FtpFolderName); } ftp.DownloadFolder( LocalFolderName, remoteFolder, RecursiveCopy); ftp.DisConnect(); }
protected override bool Execute(IIntegrationResult result) { result.BuildProgressInformation.SignalStartRunTask(!string.IsNullOrEmpty(Description) ? Description : GetDescription()); string remoteFolder = FtpFolderName; FtpLib ftp = new FtpLib(this,result.BuildProgressInformation); try { ftp.LogIn(ServerName, UserName, Password, UseActiveConnectionMode); if (!FtpFolderName.StartsWith("/")) { remoteFolder = System.IO.Path.Combine(ftp.CurrentWorkingFolder(),FtpFolderName); } if (Action == FtpAction.UploadFolder) { Log.Debug("Uploading {0} to {1}, recursive : {2}", LocalFolderName, remoteFolder, RecursiveCopy); ftp.UploadFolder(remoteFolder, LocalFolderName, RecursiveCopy); } if (Action == FtpAction.DownloadFolder) { Log.Debug("Downloading {0} to {1}, recursive : {2}", remoteFolder, LocalFolderName, RecursiveCopy); ftp.DownloadFolder(LocalFolderName, remoteFolder, RecursiveCopy); } } catch (Exception ex) { Log.Error(ex); // try to disconnect in a proper way on getting an error if (ftp != null) { try { // swallow exception on disconnect to keep the original error if (ftp.IsConnected()) ftp.DisConnect(); } catch { } } Log.Info("throwing"); throw; } return true; }
public override Modification[] GetModifications(IIntegrationResult from, IIntegrationResult to) { ftp = new FtpLib(to.BuildProgressInformation); string remoteFolder = FtpFolderName; ftp.LogIn(ServerName,UserName,Password.PrivateValue,UseActiveConnectionMode); if (!FtpFolderName.StartsWith("/")) { remoteFolder = System.IO.Path.Combine(ftp.CurrentWorkingFolder(), FtpFolderName); } Modification[] mods = ftp.ListNewOrUpdatedFilesAtFtpSite(LocalFolderName, remoteFolder, RecursiveCopy); ftp.DisConnect(); return mods; }