コード例 #1
0
ファイル: FtpClient.cs プロジェクト: Denrage/Cida
        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);
        }
コード例 #2
0
ファイル: FtpClient.cs プロジェクト: Denrage/Cida
        public bool ValidateConfiguration(ExternalServerConnection ftpConnection)
        {
            if (string.IsNullOrEmpty(ftpConnection.Host) || string.IsNullOrEmpty(ftpConnection.Username))
            {
                return(false);
            }

            return(true);
        }
コード例 #3
0
 public ExternalServerConnectionManager(ExternalServerConnection configuration)
 {
     this.configuration = configuration;
 }