public void SetExtensionArgument(CreationType creationType, string setting, string value)
        {
            var argument = GetExtensionArgument(creationType, setting);

            if (argument == null)
            {
                if (value != null)
                {
                    ExtensionArguments.Add(new Argument {
                        Name = setting, SettingType = creationType, Value = value
                    });
                }
            }
            else if (value == null)
            {
                ExtensionArguments.Remove(argument);
            }
            else
            {
                argument.Value = value;
            }
        }
 public Argument GetExtensionArgument(CreationType creationType, string setting)
 {
     return(ExtensionArguments.FirstOrDefault(a => a.SettingType == creationType &&
                                              string.Equals(a.Name, setting, StringComparison.InvariantCultureIgnoreCase)) ??
            new Argument(creationType, setting, string.Empty));
 }