/// <summary> /// Konstruktor FtpUtility dla pojedynczych usług /// </summary> /// <param name="endpoint">Parametry serwera</param> /// <param name="window">Główne okno aplikacji</param> public FtpUtilityBase(FtpEndpointModel endpoint, MainWindow window) { m_mainWnd = window; m_showError = window.m_showError; m_SyncMode = eSyncFileMode.AllFiles; FromFtpEndpoint(endpoint); }
/// <summary> /// Tworzenie, modyfikacja, usunięcie endpointu FTP /// </summary> /// <param name="endpoint">Definicja endpointu</param> /// <param name="mode">Rodzaj operacji</param> /// <returns>Komunikat o ewentualnym błędzie</returns> public static string ModifyEndpoint(FtpEndpointModel endpoint, eDbOperation mode) { SqlCommand cmd = guiConn.CreateCommand(); cmd.CommandText = "exec [ftp].[sp_modify_endpoint] @mode,@xx,@ins_xx,@host,@userid,@passwd,@remdir,@locdir,@transprot,@transdir,@transmode"; var par = cmd.Parameters; par.Add("mode", SqlDbType.Int).Value = (int)mode; par.Add("xx", SqlDbType.Int).Value = endpoint.xx; par.Add("ins_xx", SqlDbType.Int).Value = endpoint.insXX; par.Add("host", SqlDbType.VarChar, 64).Value = endpoint.host; par.Add("userid", SqlDbType.VarChar, 32).Value = endpoint.uid; par.Add("passwd", SqlDbType.VarChar, 32).Value = endpoint.pwd; par.Add("remdir", SqlDbType.VarChar, 256).Value = endpoint.remDir; par.Add("locdir", SqlDbType.VarChar, 256).Value = endpoint.locDir; par.Add("transprot", SqlDbType.TinyInt).Value = endpoint.protocol; par.Add("transdir", SqlDbType.TinyInt).Value = endpoint.direction; par.Add("transmode", SqlDbType.TinyInt).Value = endpoint.mode; if (mode == eDbOperation.Insert) { return(ExecuteNonQueryStoreKey(cmd)); } else { return(ExecuteNonQuery(cmd)); } }
/// <summary> /// Tworzenie, modyfikacja, usunięcie endpointu FTP /// </summary> /// <param name="endpoint">Definicja endpointu</param> /// <param name="mode">Rodzaj operacji</param> /// <returns>Komunikat o ewentualnym błędzie</returns> public static string ModifyEndpoint(FtpEndpointModel endpoint, eDbOperation mode) { OracleCommand cmd = guiConn.CreateCommand(); cmd.CommandText = "begin modify_endpoint(:mode,:xx,:ins_xx,:host,:userid,:passwd,:remdir,:locdir,:transprot,:transdir,:transmode); end;"; var par = cmd.Parameters; par.Add("mode", OracleDbType.Int32).Value = (int)mode; par.Add("xx", OracleDbType.Int32).Value = endpoint.xx; par.Add("ins_xx", OracleDbType.Int32).Value = endpoint.insXX; par.Add("host", OracleDbType.Varchar2, 64).Value = endpoint.host; par.Add("userid", OracleDbType.Varchar2, 32).Value = endpoint.uid; par.Add("passwd", OracleDbType.Varchar2, 32).Value = endpoint.pwd; par.Add("remdir", OracleDbType.Varchar2, 256).Value = endpoint.remDir; par.Add("locdir", OracleDbType.Varchar2, 256).Value = endpoint.locDir; par.Add("transprot", OracleDbType.Byte).Value = endpoint.protocol; par.Add("transdir", OracleDbType.Byte).Value = endpoint.direction; par.Add("transmode", OracleDbType.Byte).Value = endpoint.mode; if (mode == eDbOperation.Insert) { return(ExecuteNonQueryStoreKeyAsync(cmd, 1).Result); } else { return(ExecuteNonQueryAsync(cmd).Result); } }
/// <summary> /// Konstruktor FtpUtility sterowanego przez <see>FtpDispatcher</see> /// </summary> /// <param name="endpoint">Parametry serwera</param> /// <param name="dispatcher">Obiekt sterujący wątkami</param> /// <param name="mode">Algorytm kwalifikacji plików do transferu</param> public FtpUtilityBase(FtpEndpointModel endpoint, FtpDispatcher dispatcher, eSyncFileMode mode) { m_SyncMode = mode; m_Disp = dispatcher; m_mainWnd = dispatcher.m_mainWnd; m_showError = m_mainWnd.m_showError; FromFtpEndpoint(endpoint); }
/// <summary> /// Konstruktor FtpUtility dla pojedynczych usług /// </summary> /// <param name="endpoint">Parametry serwera</param> /// <param name="window">Główne okno aplikacji</param> public FtpHotfolderWatcher(FtpEndpointModel endpoint, MainWindow window) { m_mainWnd = window; m_ftpUtility = IFtpUtility.Create(endpoint, window); m_log.xx = -endpoint.xx; m_log.syncTime = DateTime.Now; m_log.direction = eFtpDirection.HotfolderPut; RegisterWatcher(); }
/// <summary> /// Inicjalizuje własności zależne od endpointu /// </summary> /// <param name="endpoint">Dane endpointu</param> private void FromFtpEndpoint(FtpEndpointModel endpoint) { m_sHost = endpoint.host; m_sUser = endpoint.uid; m_sPass = endpoint.pwd; m_sRemoteDir = endpoint.remDir; m_sLocalDir = endpoint.locDir; m_dtLastRefresh = endpoint.lastSync; m_TransferMode = endpoint.mode; }
/// <summary> /// Pobiera informację o parametrach serwera do bieżącego zadania do wykonania /// </summary> /// <param name="schedule">Identyfikator pozycji harmonogramu</param> /// <returns> /// Informacje o endpoincie, napis "0", gdy nie ma endpointu dla harmonogramu /// lub komunikat o błędzie z bazy danych /// </returns> public static async Task <(FtpEndpointModel, string)> SelectEndpoint(int schedule) { var ret = new FtpEndpointModel(); OracleConnection conn = new OracleConnection(IFtpDiligentDatabaseClient.connStr); OracleCommand cmd = conn.CreateCommand(); cmd.Parameters.Add("sch_xx", OracleDbType.Int32).Value = schedule; cmd.Parameters.Add("refCur", OracleDbType.RefCursor).Direction = ParameterDirection.Output; cmd.CommandText = "begin endpoint_for_schedule(:sch_xx,:refCur); end;"; try { await conn.OpenAsync(); var odr = await cmd.ExecuteReaderAsync(CommandBehavior.SingleRow); if (!odr.Read()) { return(ret, "0"); } ret.host = odr.GetString(0); ret.uid = odr.GetString(1); ret.pwd = odr.GetString(2); ret.remDir = odr.GetString(3); ret.locDir = odr.GetString(4); ret.lastSync = odr.GetDateTime(5); ret.nextSync = odr.GetDateTime(6); ret.protocol = (eFtpProtocol)odr.GetByte(7); ret.direction = (eFtpDirection)odr.GetByte(8); ret.mode = (eFtpTransferMode)odr.GetByte(9); odr.Close(); } catch (OracleException oex) { return(ret, OracleMessageFormatter.FirstLine(oex.Message)); } catch (Exception sex) { return(ret, sex.Message); } finally { conn.Close(); } return(ret, string.Empty); }
/// <summary> /// Pobiera informację o parametrach serwera do bieżącego zadania do wykonania /// </summary> /// <param name="schedule">Identyfikator pozycji harmonogramu</param> /// <returns> /// Informacje o endpoincie, napis "0", gdy nie ma endpointu dla harmonogramu /// lub komunikat o błędzie z bazy danych /// </returns> public static async Task <(FtpEndpointModel, string)> SelectEndpoint(int schedule) { var ret = new FtpEndpointModel(); SqlConnection conn = new SqlConnection(IFtpDiligentDatabaseClient.connStr); SqlCommand cmd = conn.CreateCommand(); cmd.Parameters.Add("sch_xx", SqlDbType.Int).Value = schedule; cmd.CommandText = "exec [ftp].[sp_endpoint_for_schedule] @sch_xx"; try { await conn.OpenAsync(); var sdr = await cmd.ExecuteReaderAsync(CommandBehavior.SingleRow); if (!sdr.Read()) { return(ret, "0"); } ret.host = sdr.GetString(0); ret.uid = sdr.GetString(1); ret.pwd = sdr.GetString(2); ret.remDir = sdr.GetString(3); ret.locDir = sdr.GetString(4); ret.lastSync = sdr.GetDateTime(5); ret.nextSync = DateTime.Now; ret.protocol = (eFtpProtocol)sdr.GetByte(6); ret.direction = (eFtpDirection)sdr.GetByte(7); ret.mode = (eFtpTransferMode)sdr.GetByte(8); sdr.Close(); } catch (SqlException oex) { return(ret, oex.Message); } catch (Exception sex) { return(ret, sex.Message); } finally { conn.Close(); } return(ret, string.Empty); }
/// <summary> /// Konstruktor FtpUtility dla pojedynczych us³ug /// </summary> /// <param name="endpoint">Parametry serwera</param> /// <param name="window">G³ówne okno aplikacji</param> public FtpsUtility(FtpEndpointModel endpoint, MainWindow window) : base(endpoint, window) { }
/// <summary> /// Konstruktor FtpUtility sterowanego przez <see>FtpDispatcher</see> /// </summary> /// <param name="endpoint">Parametry serwera</param> /// <param name="dispatcher">Obiekt steruj¹cy w¹tkami</param> /// <param name="mode">Algorytm kwalifikacji plików do transferu</param> public FtpsUtility(FtpEndpointModel endpoint, FtpDispatcher dispatcher, eSyncFileMode mode) : base(endpoint, dispatcher, mode) { }