예제 #1
0
        public override void RenderToContext(Context context)
        {
            InternalTag.BeginRender(context);

            int index = 0;

            foreach (var innerContext in Tag.GetContexts(context, Arguments))
            {
                if (index == 0 && innerContext != null)
                {
                    foreach (var statement in Statements)
                    {
                        statement.RenderToContext(innerContext);
                    }
                }
                else if (index == 1 && innerContext != null)
                {
                    foreach (var statement in ConditionalStatements)
                    {
                        statement.RenderToContext(innerContext);
                    }
                }

                index++;
            }

            InternalTag.EndRender(context);
        }
예제 #2
0
 public Tag(INode node)
 {
     tagValue = new InternalTag
     {
         Index     = 0,
         TagString = GetTagString(0, node)
     };
     this.node = node;
 }
예제 #3
0
 public override void RenderToContext(Context context)
 {
     foreach (var innerContext in Tag.GetContexts(context, Arguments))
     {
         var data = InternalTag.GetData(innerContext, Arguments);
         if (data != null)
         {
             context.Writer.Write(data);
         }
     }
 }
예제 #4
0
        public InternalTag AddSyntaxError(string description)
        {
            if (this.SyntaxErrors != null && this.SyntaxErrors.Length > 0)
            {
                return(this);                // don't add error if there already is one
            }
            InternalTag tag = (InternalTag)MemberwiseClone();

            tag.SyntaxErrors = new InternalSyntaxError[] { new InternalSyntaxError(0, Length, description) };
            return(tag);
        }
예제 #5
0
 public void Increment()
 {
     lock (locker)
     {
         var newTag = new InternalTag
         {
             Index     = tagValue.Index + 1,
             TagString = GetTagString(tagValue.Index + 1, node)
         };
         tagValue = newTag;
     }
 }
예제 #6
0
        public override void RenderToContext(Context context)
        {
            InternalTag.BeginRender(context);

            foreach (var innerContext in Tag.GetContexts(context, Arguments))
            {
                if (innerContext != null)
                {
                    foreach (var statement in Statements)
                    {
                        statement.RenderToContext(innerContext);
                    }
                }
            }

            InternalTag.EndRender(context);
        }
예제 #7
0
 public override void RenderToContext(Context context)
 {
     if (context != null)
     {
         var data = InternalTag.GetData(context, Arguments);
         if (data != null)
         {
             if (Secure)
             {
                 context.Writer.Write(System.Net.WebUtility.HtmlEncode(data));
             }
             else
             {
                 context.Writer.Write(data);
             }
         }
     }
 }
예제 #8
0
 public InternalElement(InternalTag tag)
 {
     this.Name = tag.Name;
 }