Exemple #1
0
        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();
            }
        }