private void ParseList <T>(List <Tuple <T, string> > collection, string settingName, string parseType, Func <string, T> creator) { var settingData = _configurationSettings.GetApplicationSetting(settingName); if (string.IsNullOrWhiteSpace(settingData)) { return; } var transformEncoded = settingData.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in transformEncoded) { var parts = item.Split(new[] { ':' }, 2); if (parts.Length < 2) { _logger.WriteError($"Could not parse '{item}' as a {parseType} transformation, no replace exists."); continue; } try { T findItem = creator(parts[0]); collection.Add(new Tuple <T, string>(findItem, parts[1])); } catch (ArgumentException ex) { _logger.WriteError($"Could not parse '{item}' as a {parseType} transformation. Error: {ex.Message}"); } } }
protected void SetupOption( IFluentCommandLineParser parser, string name, string description, string configSetting, Action <string> callback, bool isRequired = true) { var option = parser.Setup <string>(name).WithDescription(description).Callback(callback); var configSettingValue = _settings.GetApplicationSetting(configSetting); if (!string.IsNullOrEmpty(configSettingValue)) { option.SetDefault(configSettingValue); } else if (isRequired) { option.Required(); } }