コード例 #1
0
		public static CodeBlock mapControlBuilder(this ControlBuilder controlBuilder)
		{
			var codeBlock = new CodeBlock();  
			codeBlock.VirtualPath = controlBuilder.property<string>("VirtualPathString");	
			codeBlock.ID = controlBuilder.ID;   
			codeBlock.BuilderType = controlBuilder.type().str(); 
			if (controlBuilder.ControlType.notNull()) 
				codeBlock.ControlType = controlBuilder.ControlType.str();  
			codeBlock.Line = controlBuilder.property<int>("Line");
			codeBlock.Column = controlBuilder.property<int>("Column");
			codeBlock.TagName = controlBuilder.TagName;
			codeBlock.SkinID = controlBuilder.property<string>("SkinID"); 
			codeBlock.IsHtmlControl = controlBuilder.property<bool>("IsHtmlControl");
			codeBlock.IsHtmlControl = controlBuilder.property<bool>("HasAspCode");	
			

			codeBlock.Filter = controlBuilder.property<string>("Filter");
			foreach(var simplePropertyEntry in (IEnumerable)controlBuilder.property("SimplePropertyEntries"))
			{
				if (simplePropertyEntry is SimplePropertyEntry) 																	
					codeBlock.SimplePropertyEntries.add(((SimplePropertyEntry)simplePropertyEntry).Name,
															((SimplePropertyEntry)simplePropertyEntry).PersistedValue);								
				else 
					"in controlBuilder.SimplePropertyEntries there was an unsupported type: {0}".error(simplePropertyEntry.type());
			}
			
			foreach(var eventEntry in (IEnumerable)controlBuilder.property("EventEntries")) 
				codeBlock.EventEntries.add(eventEntry.property("Name").str(), eventEntry.property("HandlerMethodName").str());

			var content = controlBuilder.property("Content");
			if (content.notNull())
				codeBlock.Content = content.str();
				
			if (controlBuilder.property("BlockType").notNull()) 
				codeBlock.BlockType = controlBuilder.property("BlockType").str();  
				
			foreach(var subBuilder in (IEnumerable)controlBuilder.property("SubBuilders"))
			{
				if (subBuilder is string)
				{
					codeBlock.SubBlocks.Add(new CodeBlock() {
																BlockType = subBuilder.type().str(), 
																Content = subBuilder.str()
															});
				}
				else
				{									
					codeBlock.SubBlocks.Add(mapControlBuilder((ControlBuilder)subBuilder));
				}
			}
			return codeBlock;
		}