public bool TryConnect(ExternalServerConnection ftpConnection, out Exception occuredException) { try { var result = (FtpWebRequest)WebRequest.Create($"ftp://{ftpConnection.Host}:{ftpConnection.Port}"); result.Credentials = new NetworkCredential(ftpConnection.Username, ftpConnection.Password); result.Method = WebRequestMethods.Ftp.ListDirectory; using var response = (FtpWebResponse)result.GetResponse(); // Maybe response will not be disposed correctly? if (response.StatusCode != FtpStatusCode.OpeningData && response.StatusCode != FtpStatusCode.DataAlreadyOpen) { occuredException = new InvalidOperationException($"Unexpected StatusCode '{response.StatusCode}'"); return(false); } } catch (Exception ex) { occuredException = ex; return(false); } occuredException = null; return(true); }
public bool ValidateConfiguration(ExternalServerConnection ftpConnection) { if (string.IsNullOrEmpty(ftpConnection.Host) || string.IsNullOrEmpty(ftpConnection.Username)) { return(false); } return(true); }
public ExternalServerConnectionManager(ExternalServerConnection configuration) { this.configuration = configuration; }