public override List <OutputFile> Compile() { var outputFiles = new List <OutputFile>(); var entityNamespace = new AbstractNamespace { Name = Project.Name + "." + TemplateMeta.EntityLocation, Imports = new List <string> { "System", "System.Collections.Generic" } }; var clientNamespace = new AbstractNamespace { Name = Project.Name + "." + TemplateMeta.ClientLocation, Imports = new List <string> { "System", "System.Collections.Generic", $"{Project.Name}.{TemplateMeta.EntityLocation}" } }; var entityClasses = GetClassesByType <EntityNode, CsharpEntityClass>(entityNamespace, this); var clientClasses = GetClassesByType <ApiNode, CsharpClientClass>(clientNamespace, this); outputFiles.AddRange(entityClasses.Select(c => new CsharpOutputFile(c, TemplateMeta))); outputFiles.AddRange(clientClasses.Select(c => new CsharpOutputFile(c, TemplateMeta))); return(outputFiles); }
protected override void RenderAbstractNamespace(AbstractNamespace ns) { _currentOutput.AddRange(ns.Imports.Select(i => $"using {i};")); _currentOutput.AddRange(_rendererExtension.RenderClientImports().Select(i => $"using {i};")); _currentOutput.Add($"namespace {ns.Name}"); _currentOutput.Add("{"); }
public override List <OutputFile> Compile() { var outputFiles = new List <OutputFile>(); var projectName = Project.GetProperName(); var entityNamespace = new AbstractNamespace { Name = projectName + @"\" + TemplateMeta.Configuration.EntityLocation }; var clientNamespace = new AbstractNamespace { Name = projectName + @"\" + TemplateMeta.Configuration.ClientLocation, Imports = new List <string> { @"JsonMapper", $"{projectName}\\{TemplateMeta.Configuration.EntityLocation}" } }; var entityClasses = GetClassesByType <EntityNode, PhpEntityClass>(entityNamespace, this); var clientClasses = GetClassesByType <ApiNode, PhpClientClass>(clientNamespace, this); outputFiles.AddRange(entityClasses.Select(c => new PhpOutputFile(c, TemplateMeta))); outputFiles.AddRange(clientClasses.Select(c => new PhpOutputFile(c, TemplateMeta))); return(outputFiles); }
protected abstract void RenderAbstractNamespace(AbstractNamespace ns);
public PhpClass(AbstractNamespace ns, T root, AbstractCompiler compiler) : base(ns, root, compiler) { }
public CsharpClass(AbstractNamespace ns, T root, CsharpCompiler compiler) : base(ns, root, compiler) { }