Пример #1
0
        private static void Main(string[] args)
        {
            ParserResult <FtpOptions> ftpOptionsResult;

            if (args.Length == 1)
            {
                var configOptionsResult = Parser.Default.ParseArguments <ConfigOptions>(args);
                if (configOptionsResult.Errors.Any())
                {
                    return;
                }

                if (!VerifyConfigOptions(configOptionsResult))
                {
                    return;
                }

                var config = CommandLineUtils.CommandLineToArgs(File.ReadAllText(configOptionsResult.Value.ConfigFile));
                ftpOptionsResult = Parser.Default.ParseArguments <FtpOptions>(config);
                if (ftpOptionsResult.Errors.Any())
                {
                    return;
                }
            }
            else
            {
                ftpOptionsResult = Parser.Default.ParseArguments <FtpOptions>(args);
                if (ftpOptionsResult.Errors.Any())
                {
                    return;
                }
            }

            var options = ftpOptionsResult.Value;

            while (true)
            {
                try
                {
                    if (!VerifyFtpOptions(options))
                    {
                        return;
                    }
                    UploadToServer(options);
                }
                catch (FtpCommandException exception)
                {
                    if (exception.Message.Contains("Login"))
                    {
                        Console.WriteLine("Password is incorrect, try again!");
                        options.Password = null;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }