static async Task Main(string[] args) { try { Console.Title = "ModelGen"; if (args.Length != 2 || !File.Exists(args[0])) { return; } var configPath = args[0]; var queriesPath = args[1]; var configContent = await File.ReadAllTextAsync(configPath); Configuration.Default = JsonConvert.DeserializeObject <Configuration>(configContent); Configuration.Default.QueriesPath = queriesPath; var scheme = new Scheme(); await scheme.InitializeQueries(); await scheme.InitializeTables(); await scheme.InitializeFunctions(); await scheme.InitializeProcedures(); if (!Directory.Exists(Configuration.Default.ProjectPath)) { return; } var modelsPath = $@"{Configuration.Default.ProjectPath}/{Paths.Models}"; var functionModelsPath = $@"{Configuration.Default.ProjectPath}/{Paths.Models}/{Paths.FunctionModels}"; if (Directory.Exists(modelsPath)) { Directory.Delete(modelsPath, true); } Directory.CreateDirectory(modelsPath); Directory.CreateDirectory(functionModelsPath); await FileBuilder.CreateModels( Configuration.Default.TableModelNamespace, Configuration.Default.BaseModel, modelsPath, model => model.Name.Substring(0, model.Name.Length - 1), scheme.Tables); await FileBuilder.CreateModels( Configuration.Default.FunctionModelNamespace, Configuration.Default.BaseModel, functionModelsPath, model => model.Name.Substring(4, model.Name.Length - 5), scheme.Functions); } catch (Exception ex) { Console.WriteLine(ex.Message); } }