public static void GenerateBoilerplate(string baseFSPath, string targetNamespace, XmlDocument structure) { XmlNode partialsNode = structure.DocumentElement.SelectSingleNode("/website/partials"); Macros macros = new Macros(targetNamespace, baseFSPath); FileGenerator.GenerateFile(macros.Path, TemplateResolver.ResolveTemplate(macros, partialsNode), false); foreach (XmlNode partialNode in partialsNode.ChildNodes) { string partialAlias = partialNode.Attributes["alias"]?.Value; string partialGroup = partialNode.Attributes["group"]?.Value; Model model = new Model(targetNamespace, partialGroup, partialAlias, baseFSPath); FileGenerator.GenerateFile(model.Path, TemplateResolver.ResolveTemplate(model), true); ModelFactory modelFactory = new ModelFactory(targetNamespace, partialGroup, partialAlias, baseFSPath); FileGenerator.GenerateFile(modelFactory.Path, TemplateResolver.ResolveTemplate(modelFactory, model), true); Partial partial = new Partial(partialGroup, partialAlias, baseFSPath); FileGenerator.GenerateFile(partial.Path, TemplateResolver.ResolveTemplate(partial, model), true); MacroPartial macroPartial = new MacroPartial(partialGroup, partialAlias, baseFSPath); FileGenerator.GenerateFile(macroPartial.Path, TemplateResolver.ResolveTemplate(macroPartial, macros, modelFactory), true); } XmlNode templatesNode = structure.DocumentElement.SelectSingleNode("/website/templates"); foreach (XmlNode templateNode in templatesNode.ChildNodes) { Template template = new Template(targetNamespace, templateNode.Attributes["alias"]?.Value, baseFSPath); FileGenerator.GenerateFile(template.Path, TemplateResolver.ResolveTemplate(template, macros, templateNode), false); } }
public static string ResolveTemplate(MacroPartial macroPartial, Macros macros, ModelFactory modelFactory) { return(MacroPartial.Template .Replace("{constants_namespace}", macros.Namespace) .Replace("{modelfactory_namespace}", modelFactory.Namespace) .Replace("{macropartial_name}", macroPartial.Name) .Replace("{modelfactory_name}", modelFactory.Name)); }