internal override ExValue Evaluate <TKey>(TagBatchInstance <TKey> instance)
        {
            ExValue left  = LeftHand.Evaluate(instance);
            ExValue right = RightHand.Evaluate(instance);

            switch (Token.TokenType)
            {
            case TagTokenType.IsEqual:
                return(new ExValue(left.Equals(right)));

            case TagTokenType.IsNot:
                return(new ExValue(!left.Equals(right)));

            case TagTokenType.IsLte:
                return(new ExValue(left.CompareTo(right) <= 0));

            case TagTokenType.IsLessThan:
                return(new ExValue(left.CompareTo(right) < 0));

            case TagTokenType.IsGreaterThan:
                return(new ExValue(left.CompareTo(right) > 0));

            case TagTokenType.IsGte:
                return(new ExValue(left.CompareTo(right) >= 0));

            default:
                throw new InvalidOperationException();
            }
        }
Beispiel #2
0
        public override void ApplyTo(List <ITagItem> tagItems, TagBatchInstance instance)
        {
            StringBuilder sb = new StringBuilder();

            foreach (ValueItem vi in _items)
            {
                vi.ApplyTo(sb, instance);
            }

            tagItems.Add(new StubItem(sb.ToString()));
        }
Beispiel #3
0
        protected virtual string ApplyItems(TagBatchInstance instance)
        {
            StringBuilder sb = new StringBuilder();

            foreach (ValueItem vi in _items)
            {
                vi.ApplyTo(sb, instance);
            }

            return(sb.ToString());
        }
Beispiel #4
0
        internal override ExValue Evaluate <TKey>(TagBatchInstance <TKey> instance)
        {
            StringBuilder sb = new StringBuilder();

            foreach (ValueItem vi in _parts)
            {
                vi.ApplyTo(sb, instance);
            }

            return(new ExValue(sb.ToString()));
        }
Beispiel #5
0
        internal override ExValue Evaluate <TKey>(TagBatchInstance <TKey> instance)
        {
            ExValue leftValue  = LeftHand.Evaluate(instance);
            bool    leftResult = leftValue.ToBool();

            if (IsAnd != leftResult)
            {
                // ((IsAnd && !leftResult) || (IsOr && leftResult))
                return(leftValue);
            }

            return(RightHand.Evaluate(instance));
        }
Beispiel #6
0
        public override void ApplyTo(List <ITagItem> tagItems, TagBatchInstance instance)
        {
            TagItemCollection items = instance.GetItems(_item.Item);

            foreach (TagItem ti in items)
            {
                if (string.IsNullOrEmpty(_item.Key))
                {
                    tagItems.Add(ti);
                }
                else
                {
                    throw new NotImplementedException();
                }
            }
        }
Beispiel #7
0
 public abstract void ApplyTo(List <ITagItem> tagItems, TagBatchInstance instance);
Beispiel #8
0
 public override void ApplyTo(List <ITagItem> tagItems, TagBatchInstance instance)
 {
     tagItems.Add(new StubItem(_value));
 }
        internal override object GetValue <TKey>(TagBatchDefinition <TKey> definition, TagBatchInstance <TKey> instance)
        {
            string s = base.ApplyItems(instance);

            //throw new NotImplementedException();

            return(CreateValue(s));
        }
Beispiel #10
0
 /// <summary>
 /// Converts the item to a string for the specified instance
 /// </summary>
 /// <param name="instance">The instance.</param>
 /// <returns></returns>
 public abstract string ToString(TagBatchInstance instance);
Beispiel #11
0
 internal override ExValue Evaluate <TKey>(TagBatchInstance <TKey> instance)
 {
     return(InnerExpression.Evaluate(instance));
 }
Beispiel #12
0
 internal override object GetValue <TKey>(TagBatchDefinition <TKey> definition, TagBatchInstance <TKey> instance)
 {
     return(EvaluateCondition(instance));
 }
Beispiel #13
0
 internal bool EvaluateCondition <TKey>(TagBatchInstance <TKey> instance)
     where TKey : class
 {
     return(_expression.Evaluate(instance).ToBool());
 }
Beispiel #14
0
 internal override void ApplyTo(StringBuilder to, TagBatchInstance items)
 {
     to.Append(_value);
 }
Beispiel #15
0
        public override string ToString(TagBatchInstance instance)
        {
            TagPropertyCollection tpc = instance.Context.Properties;

            return(tpc.Contains(PropertyName) ? tpc[PropertyName].ExpandedValue() : "");
        }
Beispiel #16
0
 /// <summary>
 /// Converts the item to a string for the specified instance
 /// </summary>
 /// <param name="instance">The instance.</param>
 /// <returns></returns>
 public override string ToString(TagBatchInstance instance)
 {
     return(_value);
 }
Beispiel #17
0
 /// <summary>
 /// Applies the ValueItem to the specified StringBuilder
 /// </summary>
 /// <param name="to">To.</param>
 /// <param name="instance">The instance.</param>
 internal virtual void ApplyTo(StringBuilder to, TagBatchInstance instance)
 {
     to.Append(ToString(instance));
 }
Beispiel #18
0
 public override string ToString(TagBatchInstance instance)
 {
     return(instance.GetItemValue(Item, Key, Separator ?? ";"));
 }
Beispiel #19
0
 internal override ExValue Evaluate <TKey>(TagBatchInstance <TKey> instance)
 {
     return(new ExValue(!InnerExpression.Evaluate(instance).ToBool()));
 }
        internal override object GetValue <TKey>(TagBatchDefinition <TKey> definition, TagBatchInstance <TKey> instance)
        {
            List <ITagItem> items = new List <ITagItem>();

            foreach (ValuePart vp in _parts)
            {
                vp.ApplyTo(items, instance);
            }

            return(CreateValue(items));
        }
Beispiel #21
0
 internal override ExValue Evaluate <TKey>(TagBatchInstance <TKey> instance)
 {
     return(new ExValue(_value));
 }
Beispiel #22
0
 internal abstract object GetValue <TKey>(TagBatchDefinition <TKey> definition, TagBatchInstance <TKey> instance)
     where TKey : class;
 internal override ExValue Evaluate <TKey>(TagBatchInstance <TKey> instance)
 {
     throw new NotImplementedException();
 }
Beispiel #24
0
 public override string ToString(TagBatchInstance instance)
 {
     return(instance.GetKeyValue(_item, _key));
 }