public virtual void FtpPickUp(string destinationFilePath, Dictionary<string, string> config, string fileName)
{
ChannelSftp channelSftp;
var printxml = config["printxml"] == "true";
var url = config["sftpUrl"];
var username = config["sftpUsername"];
var password = config["sftpPassword"];
var knownHostsFile = config["knownHostsFile"];
var jsch = new JSch();
jsch.setKnownHosts(knownHostsFile);
var session = jsch.getSession(username, url);
session.setPassword(password);
try
{
session.connect();
var channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
}
catch (SftpException e)
{
throw new LitleOnlineException("Error occured while attempting to establish an SFTP connection", e);
}
try
{
if (printxml)
{
Console.WriteLine("Picking up remote file outbound/" + fileName + ".asc");
Console.WriteLine("Putting it at " + destinationFilePath);
}
channelSftp.get("outbound/" + fileName + ".asc", destinationFilePath);
if (printxml)
{
Console.WriteLine("Removing remote file output/" + fileName + ".asc");
}
channelSftp.rm("outbound/" + fileName + ".asc");
}
catch (SftpException e)
{
throw new LitleOnlineException("Error occured while attempting to retrieve and save the file from SFTP", e);
}
channelSftp.quit();
session.disconnect();
}