示例#1
0
        protected override void Visit(InjectChunk chunk)
        {
            // TODO: Remove this InjectChunk handling point, make the inject directive more generic.
            var injectTokens = new List <RazorDirectiveToken>
            {
                new RazorDirectiveToken
                {
                    Descriptor = new RazorDirectiveTokenDescriptor {
                        Type = RazorDirectiveTokenType.Type
                    },
                    Value = chunk.TypeName,
                },
                new RazorDirectiveToken
                {
                    Descriptor = new RazorDirectiveTokenDescriptor {
                        Type = RazorDirectiveTokenType.Member
                    },
                    Value = chunk.MemberName,
                }
            };

            var injectDirective = new RazorSingleLineDirective()
            {
                Name   = "inject",
                Tokens = injectTokens,
            };

            _context.Builder.Add(injectDirective);
        }
        public void Visit_UpdatesTModelTokenToMatchModelType(string typeName, string expectedValue)
        {
            // Arrange
            var chunk = new InjectChunk(typeName, "TestHelper");
            var merger = new InjectChunkMerger("Person");

            // Act
            merger.VisitChunk(chunk);

            // Assert
            Assert.Equal(expectedValue, chunk.TypeName);
            Assert.Equal("TestHelper", chunk.MemberName);
        }
示例#3
0
 private InjectChunk TransformChunk(InjectChunk injectChunk)
 {
     var typeName = ChunkHelper.ReplaceTModel(injectChunk.TypeName, _modelType);
     if (typeName != injectChunk.TypeName)
     {
         return new InjectChunk(typeName, injectChunk.MemberName)
         {
             Start = injectChunk.Start,
             Association = injectChunk.Association
         };
     }
     return injectChunk;
 }
示例#4
0
        public void Visit_UpdatesTModelTokenToMatchModelType(string typeName, string expectedValue)
        {
            // Arrange
            var chunk  = new InjectChunk(typeName, "TestHelper");
            var merger = new InjectChunkMerger("Person");

            // Act
            merger.VisitChunk(chunk);

            // Assert
            Assert.Equal(expectedValue, chunk.TypeName);
            Assert.Equal("TestHelper", chunk.MemberName);
        }
示例#5
0
        private InjectChunk TransformChunk(InjectChunk injectChunk)
        {
            var typeName = ChunkHelper.ReplaceTModel(injectChunk.TypeName, _modelType);

            if (typeName != injectChunk.TypeName)
            {
                return(new InjectChunk(typeName, injectChunk.MemberName)
                {
                    Start = injectChunk.Start,
                    Association = injectChunk.Association
                });
            }
            return(injectChunk);
        }
 protected virtual void Visit(InjectChunk chunk)
 {
     // TODO: Should remove once a more generic directive chunk is created.
 }