コード例 #1
0
ファイル: EachNode.cs プロジェクト: Carael/NHandlebars
        public override void Write(TextWriter writer, Context context)
        {
            var items = context.GetValues(_expression).ToArray();

            int index = 0;

            foreach (var item in items)
            {
                try
                {
                    var meta = new Dictionary <string, object>(StringComparer.Ordinal)
                    {
                        { "@index", index },
                        { "@first", index == 0 },
                        { "@last", index == items.Length - 1 }
                    };

                    context.Push(item, meta);
                    _content.Write(writer, context);
                    index++;
                }
                finally
                {
                    context.Pop();
                }
            }
        }
コード例 #2
0
ファイル: EachNode.cs プロジェクト: sergeyt/NHandlebars
        public override void Write(TextWriter writer, Context context)
        {
            var items = context.GetValues(_expression).ToArray();

            int index = 0;
            foreach (var item in items)
            {
                try
                {
                    var meta = new Dictionary<string, object>(StringComparer.Ordinal)
                    {
                        {"@index", index},
                        {"@first", index == 0},
                        {"@last", index == items.Length - 1}
                    };

                    context.Push(item, meta);
                    _content.Write(writer, context);
                    index++;
                }
                finally
                {
                    context.Pop();
                }
            }
        }
コード例 #3
0
ファイル: WithNode.cs プロジェクト: sergeyt/NHandlebars
        public override void Write(TextWriter writer, Context context)
        {
            var value = context.GetValue(_expression);
            if (value.IsNullOrNoValue()) return;

            try
            {
                context.Push(value, null);
                _content.Write(writer, context);
            }
            catch (Exception)
            {
                context.Pop();
            }
        }
コード例 #4
0
        public override void Write(TextWriter writer, Context context)
        {
            var value = context.GetValue(_expression);

            if (value.IsNullOrNoValue())
            {
                return;
            }

            try
            {
                context.Push(value, null);
                _content.Write(writer, context);
            }
            catch (Exception)
            {
                context.Pop();
            }
        }