Exemple #1
0
        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);
            }
        }