private TemplateDeclaration ApplyTemplate() { if (applied) { return(null); } if (templates == null) { applied = true; return(null); } PageTemplateAttribute attr = PageTemplateAttribute.GetAttribute(GetType()); if (attr != null) { this.SkinID = attr.SkinID; if (Logic.StringEmpty(attr.TemplateName)) { applied = true; return(null); } TemplateDeclaration template = templates[attr.TemplateName]; if (template != null) { template.ApplyTo(this); applied = true; } return(template); } foreach (TemplateDeclaration template in templates) { if (mappings != null) { IList m = (IList)mappings.Mappings[template.Name]; if (m != null) { foreach (ITemplateMappingCondition cond in m) { if (cond.Satisfied(Context)) { template.ApplyTo(this); applied = true; return(template); } } } } } if (templates.Default != null) { templates.Default.ApplyTo(this); applied = true; } return(templates.Default); }
internal TemplateSymbol(Symbol container, MergedTemplateDeclaration declaration) { Debug.Assert(declaration.Kind == DeclarationKind.Template); _containingSymbol = container; _declaration = declaration.Declaration; }