This is it. Don't get scared now. (Converted to Ratermania.Automation)

This commit is contained in:
2021-01-27 21:04:53 -05:00
parent b0935e9214
commit e1be26d798
29 changed files with 1694 additions and 1025 deletions

View File

@@ -1,5 +1,7 @@
using PartSource.Automation.Models.Configuration;
using Microsoft.Extensions.Configuration;
using PartSource.Automation.Models.Configuration;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Net;
@@ -13,23 +15,38 @@ namespace PartSource.Automation.Services
public FtpService(FtpConfiguration ftpConfiguration)
{
_ftpConfiguration = ftpConfiguration;
_ftpConfiguration = ftpConfiguration;
}
public string[] ListFiles(string directory)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri($"{_ftpConfiguration.Url}/{directory}"));
request.Credentials = new NetworkCredential(_ftpConfiguration.Username, _ftpConfiguration.Password);
request.Method = WebRequestMethods.Ftp.ListDirectory;
using FtpWebResponse response = (FtpWebResponse)request.GetResponse();
using StreamReader reader = new StreamReader(response.GetResponseStream());
string files = reader.ReadToEnd();
return files.Length > 0
? files.Split("\r\n")
: Array.Empty<string>();
}
public void Download(string filename)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"{_ftpConfiguration.Url}/{filename}");
string file = $"{_ftpConfiguration.Destination}\\{filename.Replace("/", "\\")}";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri($"{_ftpConfiguration.Url}/{filename}"));
request.Credentials = new NetworkCredential(_ftpConfiguration.Username, _ftpConfiguration.Password);
request.Method = WebRequestMethods.Ftp.DownloadFile;
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
using (FileStream fileStream = new FileStream($"{_ftpConfiguration.Destination}\\{filename}", FileMode.Create))
{
responseStream.CopyTo(fileStream);
}
}
using FtpWebResponse response = (FtpWebResponse)request.GetResponse();
using Stream responseStream = response.GetResponseStream();
using FileStream fileStream = new FileStream($"{_ftpConfiguration.Destination}\\{filename.Replace("/", "\\")}", FileMode.Create);
responseStream.CopyTo(fileStream);
}
}
}