static void Main(string[] args) { try { SonFact.init("server=localhost;database=LLR;uid=sa;pwd=123456Aa;Max Pool Size=1000"); Console.WriteLine("====================="); Console.WriteLine("Generator Start..."); Console.WriteLine("====================="); GeneratorCore.Generate("TrainLearner"); Console.WriteLine("====================="); Console.WriteLine("Generator Success!"); Console.WriteLine("====================="); Console.WriteLine("Press Any Key To Exit!"); } catch (Exception ex) { Console.WriteLine("Generator Error:" + ex.Message); } finally { Console.ReadKey(); } }
public static IEnumerable <string> GenerateCode(string jsonSchema, string defaultNamespace, bool namespaceIsForced) { var sources = new List <string>(); IEnumerable <TypeSchema> schemas = Utils.CodeGenerator.ResolveCodeGeneratingSchemas(jsonSchema); foreach (TypeSchema schema in schemas) { using (var memoryStream = new MemoryStream()) { GeneratorCore.Generate(schema, defaultNamespace, namespaceIsForced, memoryStream); memoryStream.Flush(); var reader = new StreamReader(memoryStream, new UTF8Encoding()); memoryStream.Seek(0, SeekOrigin.Begin); sources.Add(reader.ReadToEnd()); } } return(sources); }
/// <summary> /// Generate Entity Class Files from Postgresql. /// </summary> /// <param name="connectionString">Connection String to Postgresql Database.</param> /// <param name="nameSpace">Namespace of generated Entity class.</param> /// <param name="outputFolder">Output folder (optional)</param> /// <param name="schema">Schema of Table to generate Entity class (optional)</param> public async Task GenerateFileAsync( [Option("c", "Connection String to Postgresql Database.")]string connectionString, [Option("n", "Namespace of generated Entity class.")]string nameSpace, [Option("o", "Output folder (optional)")]string? outputFolder = null, [Option("s", "Schema of Table to generate Entity class (optional)")]string? schema = null) { if (nameSpace is null) throw new ArgumentNullException(nameof(nameSpace)); if (string.IsNullOrWhiteSpace(nameSpace)) throw new ArgumentException(nameof(nameSpace) + " is required.", nameof(nameSpace)); var repository = new PgTableInfoRepository(connectionString, schema); var generator = new GeneratorCore(repository); foreach (var (fileName, text) in await generator.GenerateSourceFileAsync(nameSpace)) { Context.Logger.LogInformation($"Write {fileName}"); string filePath = string.IsNullOrEmpty(outputFolder) ? Path.Combine(Environment.CurrentDirectory, fileName) : Path.Combine(outputFolder, fileName); await File.AppendAllTextAsync(filePath, text, UTF8Encoding.Default, Context.CancellationToken); } }