/// <summary>
        /// Initializes a new instance of the <see cref="EditArray"/> class.
        /// </summary>
        /// <param name="changeType">change type.</param>
        /// <param name="arrayProperty">array property (optional).</param>
        /// <param name="value">value to insert.</param>
        /// <param name="resultProperty">output property to put Pop/Take into.</param>
        public EditArray(ArrayChangeType changeType, string arrayProperty = null, object value = null, string resultProperty = null)
            : base()
        {
            this.ChangeType = new EnumExpression <ArrayChangeType>(changeType);

            if (!string.IsNullOrEmpty(arrayProperty))
            {
                this.ItemsProperty = arrayProperty;
            }

            switch (changeType)
            {
            case ArrayChangeType.Clear:
            case ArrayChangeType.Pop:
            case ArrayChangeType.Take:
                if (ResultProperty != null)
                {
                    this.ResultProperty = resultProperty;
                }

                break;

            case ArrayChangeType.Push:
            case ArrayChangeType.Remove:
                if (value != null)
                {
                    this.Value = new ValueExpression(value);
                }

                break;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EditArray"/> class.
        /// </summary>
        /// <param name="changeType">change type.</param>
        /// <param name="arrayProperty">array property (optional).</param>
        /// <param name="value">value to insert.</param>
        /// <param name="resultProperty">output property to put Pop/Take into.</param>
        public EditArray(ArrayChangeType changeType, string arrayProperty = null, string value = null, string resultProperty = null)
            : base()
        {
            this.ChangeType = changeType;

            if (!string.IsNullOrEmpty(arrayProperty))
            {
                this.ItemsProperty = arrayProperty;
            }

            switch (changeType)
            {
            case ArrayChangeType.Clear:
            case ArrayChangeType.Pop:
            case ArrayChangeType.Take:
                this.ResultProperty = resultProperty;
                break;

            case ArrayChangeType.Push:
            case ArrayChangeType.Remove:
                this.Value = value;
                break;
            }
        }