Пример #1
0
        /// <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;
                }
            }
        }
Пример #2
0
        /// <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());
        }
Пример #4
0
        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);
        }
Пример #5
0
        void ICustomParameterContainer.AddParameter(CustomParameter parameter)
        {
            var index = GetCustomParameterIndex(parameter.Name);

            if (index == -1)
            {
                InternalParameters.Add(parameter);
            }
            else
            {
                InternalParameters[index] = parameter;
            }
        }
Пример #6
0
        /// <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);
 }