Exemple #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);
        }