static int Main(string[] args) { EasyWinScpScript.Infrastructure.Logger logger = new EasyWinScpScript.Infrastructure.Logger(ParameterLoader.GetParameter(args, "Log"), ParameterLoader.IsEnableLogging(args)); try { logger.LogSeperator('-'); logger.Log("Collecting connection information..."); ParameterLoader.AddLogger(logger); ConnectionInfo connectionInfo = new ConnectionInfo(); if (ParameterLoader.IsDBConnection(args)) { logger.Log("Database call found"); ParameterLoader.LoadFromDataBase(args, connectionInfo); } if (ParameterLoader.isParameterLoad(args)) { logger.Log("Loading connection info from parameters"); ParameterLoader.LoadFromParameters(args, connectionInfo); } logger.LogSeperator('-'); Connection conn = new Connection(connectionInfo, logger); conn.Initialize(); string searchPattern = ParameterLoader.GetParameter(args, "Search_Pattern", "*"); string sftpAction = ParameterLoader.GetParameter(args, "SFTP_Action").ToLower(); string localDirectory = ParameterLoader.GetParameter(args, "Local_Directory"); string remoteDirectory = ParameterLoader.GetParameter(args, "Remote_Directory"); if (sftpAction.Equals(ConfigurationManager.AppSettings["PUT"])) { conn.PutFilesInRemoteDirectory(conn.GetFiles(localDirectory, searchPattern), remoteDirectory); } else if (sftpAction.Equals(ConfigurationManager.AppSettings["PUT_DELETE"])) { conn.PutFilesInRemoteDirectory(conn.GetFiles(localDirectory, searchPattern), remoteDirectory, true); } else if (sftpAction.Equals(ConfigurationManager.AppSettings["GET"])) { conn.GetFilesInRemoteDirectory(conn.GetRemoteFiles(remoteDirectory, searchPattern), localDirectory); } else if (sftpAction.Equals(ConfigurationManager.AppSettings["GET_DELETE"])) { conn.GetFilesInRemoteDirectory(conn.GetRemoteFiles(remoteDirectory, searchPattern), localDirectory, true); } else if (sftpAction.Equals(ConfigurationManager.AppSettings["GET_REMOTE_FILES"])) { writeFile(conn.GetRemoteFiles(remoteDirectory, searchPattern), ParameterLoader.GetParameter(args, "Output_File")); } } catch (Exception ex) { logger.LogError(ex); return(0); } finally { logger.Close(); } return(1000); }
/// <summary> /// Parses the specified parameter if it exists. /// </summary> /// <param name="args">The array of parameter arguments you want to check.</param> /// <param name="parameter">The parameter you want to parse.</param> public static void ParseParameter(this string[] args, string parameter) { try { IParameter param = ParameterLoader.GetParameter(parameter); if (param.ExpectsValue) { if (args.TryGetParameterValue(param.Name, out string value)) { param.Parse(value); } } else { param.Parse(""); } } catch { /* ignored */ } }