public static FtpClientConfiguration GetFtpConfigurationFromSettings(Setting[] settings) { var settingsList = settings.ToList(); var settingNames = settingsList.ToList().Select(s => s.Name); if (!settingNames.Contains("Password")) { throw new Exception("Password is a required setting."); } if (!settingNames.Contains("UserName")) { throw new Exception("UserName is a required setting."); } if (!settingNames.Contains("Uri")) { throw new Exception("Uri is a required setting."); } if (!settingNames.Contains("TargetFileName")) { throw new Exception("Target File Name is a required setting."); } if (!settingNames.Contains("FileFormat")) { throw new Exception("File Format is a required setting."); } var config = new FtpClientConfiguration(); config.EnableSsl = settingNames.Contains("EnableSsl") ? Convert.ToBoolean(settingsList.ToList().First(x => x.Name == "EnableSsl").Value) : false; config.KeepAlive = settingNames.Contains("KeepAlive") ? Convert.ToBoolean(settingsList.ToList().First(x => x.Name == "KeepAlive").Value) : false; config.UseBinary = settingNames.Contains("UseBinary") ? Convert.ToBoolean(settingsList.ToList().First(x => x.Name == "UseBinary").Value) : true; config.UsePassive = settingNames.Contains("UsePassive") ? Convert.ToBoolean(settingsList.ToList().First(x => x.Name == "UsePassive").Value) : false; config.AppendExecutionDateToFileName = settingNames.Contains("AppendExecutionDateToFileName") ? Convert.ToBoolean(settingsList.ToList().First(x => x.Name == "AppendExecutionDateToFileName").Value) : false; config.FtpPort = settingNames.Contains("FtpPort") ? Convert.ToInt32(settingsList.ToList().First(x => x.Name == "FtpPort").Value) : 21; config.FtpFolder = settingNames.Contains("FtpFolder") ? settingsList.ToList().First(x => x.Name == "FtpFolder").Value : String.Empty; config.DateTimeFormatToAppend = settingNames.Contains("DateTimeFormatToAppend") ? settingsList.ToList().First(x => x.Name == "DateTimeFormatToAppend").Value : String.Empty; config.Password = settingsList.ToList().First(x => x.Name == "Password").Value; config.TargetFileName = settingsList.ToList().First(x => x.Name == "TargetFileName").Value; config.Uri = settingsList.ToList().First(x => x.Name == "Uri").Value; config.UserName = settingsList.ToList().First(x => x.Name == "UserName").Value; config.FileFormat = settingsList.ToList().First(x => x.Name == "FileFormat").Value; return config; }