Esempio n. 1
0
        protected virtual void WriteHelperTrailer(BlockContext block, HelperFooterSpan endSequenceSpan)
        {
            CurrentHelper.TrailerWritten = true;

            // Write the helper trailer
            if (CurrentHelper.WroteHelperPrefix)
            {
                block.SourceCodeStart = null;
                block.Writer.WriteEndLambdaDelegate();
                block.Writer.WriteEndConstructor();
                block.Writer.WriteEndStatement();
                WriteBlockToHelperContent(block);
                block.ResetBuffer();
            }

            if (endSequenceSpan != null)
            {
                block.VisitSpan(endSequenceSpan);
            }

            // If block contains end sequence, write it, otherwise get the code writer to do it
            if (endSequenceSpan != null)
            {
                block.WriteLinePragma = DesignTimeMode;
                block.MarkStartGeneratedCode();
                block.Writer.WriteSnippet(endSequenceSpan.Content);
                block.MarkEndGeneratedCode();
                block.Writer.InnerWriter.WriteLine();
            }
            else
            {
                block.Writer.WriteHelperTrailer();
            }
        }
Esempio n. 2
0
 // Called after the end of a sub-block within the specified block
 protected virtual void ResumeBlock(BlockContext block, BlockContext previousBlock)
 {
     if (previousBlock.BlockType == BlockType.Template)
     {
         block.Writer.WriteEndLambdaDelegate();
         block.Writer.WriteEndConstructor();
         block.Writer.WriteEndLambdaExpression();
     }
     block.MarkStartGeneratedCode();
 }