/// <summary> /// Updates the value of a trigger property in this object's <see cref="Parameters"/>. If the trigger property does not exist, it will be added. /// </summary> /// <param name="property">The property whose value will be updated.</param> /// <param name="value">The value to insert.</param> /// <param name="requireValue">Indicates whether null is allowed for the specified property.</param> protected void UpdateCustomParameter(TriggerProperty property, object value, bool requireValue = false) { if (value == null && requireValue && Action != ModifyAction.Edit) { throw new InvalidOperationException($"Trigger property '{property}' cannot be null for trigger type '{Type}'"); } var name = $"{property.GetDescription()}_{this.subId}"; var parameter = new CustomParameter(name, value); var index = GetCustomParameterIndex(property); if (index == -1) { Parameters.Add(parameter); } else { if (value == null) { Parameters.RemoveAt(index); } else { Parameters[index] = parameter; } } }
/// <summary> /// Stores the value of a property in the underlying set, using its raw serialized name. /// </summary> /// <param name="name">The raw name of the parameter.</param> /// <param name="value">The value to store.</param> protected void SetCustomParameterInternal(string name, object value) { value = PSObjectUtilities.CleanPSObject(value); var parameter = new CustomParameter(name, value); ((ICustomParameterContainer)this).AddParameter(parameter); }
internal bool HasName(CustomParameter param, string name, bool ignoreUnderscore = true) { if (ignoreUnderscore) { return(param.Name.TrimEnd('_').ToUpperInvariant() == name.TrimEnd('_').ToUpperInvariant()); } return(param.Name.ToUpperInvariant() == name.ToUpperInvariant()); }
internal void Add(string name, object value) { var param = new CustomParameter(name, null, ParameterType.MultiParameter); var parameterValue = container.CreateValue(name, value, trimName); param.Value = parameterValue; InternalParameters.Add(param); container.Add(parameterValue); }
void ICustomParameterContainer.AddParameter(CustomParameter parameter) { var index = GetCustomParameterIndex(parameter.Name); if (index == -1) { InternalParameters.Add(parameter); } else { InternalParameters[index] = parameter; } }
/// <summary> /// Store the value of a property in the underlying set, using its raw serialized name. /// </summary> /// <param name="name">The raw name of the parameter.</param> /// <param name="value">The value to store.</param> protected void SetCustomParameterInternal(string name, object value) { value = PSObjectHelpers.CleanPSObject(value); var parameter = new CustomParameter(name, value); var index = GetCustomParameterIndex(name); if (index == -1) { InternalParameters.Add(parameter); } else { InternalParameters[index] = parameter; } }
internal void Add(string name, object value) { var param = new CustomParameter(name, null, ParameterType.MultiParameter); var var = new PSVariableEx( name, value, v => this[name] = v, trimName ); param.Value = var; InternalParameters.Add(param); //Add will replace the existing property value if a member with the same name already exists psObject.Properties.Add(new PSVariableProperty(var)); }
void ICustomParameterContainer.AddParameter(CustomParameter parameter) { CustomParameters.Add(parameter); }