protected RamlBaseGenerator(string targetNamespace, string templatesFolder, string targetFileName, string destinationFolder) { TemplatesFolder = templatesFolder; this.targetNamespace = targetNamespace; this.targetFileName = targetFileName; this.destinationFolder = destinationFolder; host = new CustomCmdLineHost(); engine = new Engine(); }
public void Generate(AmfModel ramlDoc, string targetFileName, string targetNamespace, string templatesFolder, string destinationFolder) { templatesFolder = string.IsNullOrWhiteSpace(templatesFolder) ? GetTemplateDefaultPath() : templatesFolder; var model = new ClientGeneratorService(ramlDoc, targetFileName + "Client", targetNamespace, targetNamespace + ".Models").BuildModel(); var templateFilePath = Path.Combine(templatesFolder, ClientT4TemplateName); var extensionPath = Path.GetDirectoryName(GetType().Assembly.Location) + Path.DirectorySeparatorChar; var host = new CustomCmdLineHost(); var engine = new Engine(); host.TemplateFileValue = templateFilePath; // Read the T4 from disk into memory var templateFileContent = File.ReadAllText(templateFilePath); templateFileContent = templateFileContent.Replace("$(binDir)", extensionPath); templateFileContent = templateFileContent.Replace("$(ramlFile)", targetFileName.Replace("\\", "\\\\")); templateFileContent = templateFileContent.Replace("$(namespace)", targetNamespace); host.Session = host.CreateSession(); host.Session["model"] = model; var output = engine.ProcessTemplate(templateFileContent, host); foreach (CompilerError error in host.Errors) { Console.WriteLine(error.ToString()); } //var t4Service = new T4Service(ServiceProvider.GlobalProvider); //var res = t4Service.TransformText(templateFilePath, model, extensionPath, opts.Source, targetNamespace); File.WriteAllText(Path.Combine(destinationFolder, targetFileName.Replace(".raml", ".cs")), output, host.FileEncoding); }