Example #1
0
        public override void Execute(RenderingContext context)
        {
            var temp = context.EvaluateObject(key);

            if (temp != null)
            {
                decimal num;

                if (decimal.TryParse(temp.ToString(), out num))
                {
                    string key = null;
                    foreach (var entry in dictionary)
                    {
                        if (num >= entry.Value || num <= -entry.Value)
                        {
                            key = entry.Key;
                        }
                    }

                    if (key != null)
                    {
                        num /= dictionary[key];
                        num  = num.TruncateEx(2);
                        context.output.Append(num.ToString());
                        context.output.Append(key);
                    }
                    else
                    {
                        context.output.Append(num.ToString());
                    }
                }
            }
        }
Example #2
0
        public override void Execute(RenderingContext context)
        {
            if (this.trueNode == null)
            {
                throw new Exception("Missing true branch in If node");
            }

            var result = context.EvaluateObject(condition);

            var isFalse = result == null || result.Equals(false) || ((result is string) && ((string)result).Length == 0);

            if (!isFalse && result is IEnumerable)
            {
                isFalse = !((IEnumerable)result).Any();
            }

            if (isFalse)
            {
                if (falseNode != null)
                {
                    falseNode.Execute(context);
                }

                return;
            }

            trueNode.Execute(context);
        }
Example #3
0
        public override void Execute(RenderingContext context)
        {
            var temp = context.EvaluateObject(key);

            if (temp != null)
            {
                var    value = temp.ToString();
                string result;
                switch (kind)
                {
                case CaseKind.Lower: result = value.ToLowerInvariant(); break;

                case CaseKind.Upper: result = value.ToUpperInvariant(); break;

                case CaseKind.Pascal: result = TitleCase(value); break;

                case CaseKind.Camel: result = CamelCase(value); break;

                case CaseKind.Snake: result = string.Concat(value.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())); break;

                case CaseKind.Kebab: result = value.Replace(' ', '-').ToLowerInvariant(); break;

                default: result = value; break;
                }
                context.output.Append(result);
            }
        }
Example #4
0
        public override void Execute(RenderingContext context)
        {
            var temp = context.EvaluateObject(key);

            if (temp != null)
            {
                DateTime value;

                if (temp is DateTime)
                {
                    value = (DateTime)temp;
                }
                else
                if (temp is uint)
                {
                    value = ToDateTime((uint)temp);
                }
                else
                {
                    throw new Exception("Invalid date for key: " + key);
                }

                var result = monthNames[value.Month] + value.ToString(format, CultureInfo.InvariantCulture);
                context.output.Append(result);
            }
        }
Example #5
0
        public override void Execute(RenderingContext context)
        {
            if (inner == null)
            {
                throw new Exception("Missing inner branch in Each node");
            }

            var obj = context.EvaluateObject(key);

            if (obj == null)
            {
                return;
            }

            var objType = obj.GetType();

            if (objType == typeof(int) || objType == typeof(uint) || objType == typeof(long) || objType == typeof(ulong) || objType == typeof(short) || objType == typeof(ushort))
            {
                var n = Convert.ToInt32(obj);
                obj = Enumerable.Range(1, n).ToArray();
            }

            var list = obj as IEnumerable;

            if (list != null)
            {
                context.operation = RenderingOperation.None;

                int index = 0;
                int last  = list.Count() - 1;
                foreach (var item in list)
                {
                    context.Set("index", index);
                    context.Set("first", index == 0);
                    context.Set("last", index == last);
                    context.DataStack.Add(item);
                    inner.Execute(context);
                    context.DataStack.RemoveAt(context.DataStack.Count - 1);

                    if (context.operation == RenderingOperation.Break)
                    {
                        context.operation = RenderingOperation.None;
                        break;
                    }

                    index++;
                }
            }
            else
            {
                context.DataStack.Add(obj);
                context.Set("index", 0);
                context.Set("first", true);
                context.Set("last", true);
                inner.Execute(context);
                context.DataStack.RemoveAt(context.DataStack.Count - 1);
            }
        }
Example #6
0
        public override void Execute(RenderingContext context)
        {
            var obj = context.EvaluateObject(key);

            var pointer = context.DataStack[context.DataStack.Count - 1];

            if (obj == null && context != pointer)
            {
                obj = context.EvaluateObject(key);
            }

            if (obj != null)
            {
                string temp;

                if (obj is decimal)
                {
                    temp = ((decimal)obj).ToString(System.Globalization.CultureInfo.InvariantCulture);
                }
                else
                if (obj is float)
                {
                    temp = ((float)obj).ToString(".################", System.Globalization.CultureInfo.InvariantCulture);
                }
                else
                if (obj is double)
                {
                    temp = ((double)obj).ToString(".################", System.Globalization.CultureInfo.InvariantCulture);
                }
                else
                {
                    temp = obj.ToString();
                }

                if (escape)
                {
                    temp = SecurityElement.Escape(temp);
                }

                context.output.Append(temp);
            }
        }
Example #7
0
        public override void Execute(RenderingContext context)
        {
            var temp = context.EvaluateObject(key);

            if (temp != null)
            {
                DateTime value  = (DateTime)temp;
                var      result = monthNames[value.Month] + value.ToString(format, CultureInfo.InvariantCulture);
                context.output.Append(result);
            }
        }
Example #8
0
        public override void Execute(RenderingContext context)
        {
            if (inner == null)
            {
                throw new Exception("Missing inner branch in Each node");
            }

            var obj = context.EvaluateObject(key);

            if (obj == null)
            {
                return;
            }

            var list = obj as IEnumerable;

            if (list != null)
            {
                context.operation = RenderingOperation.None;

                int index = 0;
                int last  = list.Count() - 1;
                foreach (var item in list)
                {
                    context.Set("index", index);
                    context.Set("first", index == 0);
                    context.Set("last", index == last);
                    context.DataStack.Add(item);
                    inner.Execute(context);
                    context.DataStack.RemoveAt(context.DataStack.Count - 1);

                    if (context.operation == RenderingOperation.Break)
                    {
                        context.operation = RenderingOperation.None;
                        break;
                    }

                    index++;
                }
            }
            else
            {
                context.DataStack.Add(obj);
                context.Set("index", 0);
                context.Set("first", true);
                context.Set("last", true);
                inner.Execute(context);
                context.DataStack.RemoveAt(context.DataStack.Count - 1);
            }
        }
Example #9
0
        public override void Execute(RenderingContext context)
        {
            //var obj = TemplateEngine.EvaluateObject(context, context, "current_time");
            //DateTime cur_time = (obj != null) ? (DateTime)obj : DateTime.Now;

            DateTime cur_time = DateTime.Now;

            var temp = context.EvaluateObject(key);

            if (temp != null)
            {
                DateTime time = (DateTime)temp;

                var diff   = cur_time - time;
                var result = FormatTimeSpan(diff, context);
                context.output.Append(result);
            }
        }
Example #10
0
        public override void Execute(RenderingContext context)
        {
            var obj = context.EvaluateObject(key);

            if (obj == null)
            {
                context.output.Append('0');
                return;
            }

            var list = obj as IEnumerable;

            if (list != null)
            {
                context.operation = RenderingOperation.None;

                var total = list.Count();
                context.output.Append(total.ToString());
            }
            else
            {
                context.output.Append('1');
            }
        }