Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Program.WriteLine($"AzurePoolCrossDbGenerator started in {Directory.GetCurrentDirectory()} with params:");

            string command = (args.Length > 0) ? args[0]?.Trim().ToLowerInvariant() : ""; // must be a valid command

            Program.WriteLine($"Command: {command}");

            string paramTemplate = null, paramConfig = null, paramGrepFileName = null, paramTargetDir = null, paramRunOn = null, paramCSLatest = null, paramCSBase = null,
                   paramFileWithListOfItems = null;

            // extract additional params
            for (int i = 1; i < args.Length - 1; i++)
            {
                switch (args[i])
                {
                case "-t":
                {
                    paramTemplate = args[i + 1];
                    Program.WriteLine($"Template: {paramTemplate}");
                    break;
                }

                case "-c":
                {
                    paramConfig = args[i + 1];
                    Program.WriteLine($"Config: {paramConfig}");
                    break;
                }

                case "-g":
                {
                    paramGrepFileName = args[i + 1];
                    Program.WriteLine($"Grep: {paramGrepFileName}");
                    break;
                }

                case "-d":
                {
                    paramTargetDir = args[i + 1];
                    Program.WriteLine($"Target dir: {paramTargetDir}");
                    break;
                }

                case "-o":
                {
                    paramRunOn = args[i + 1];
                    Program.WriteLine($"Run on: {paramRunOn}");
                    break;
                }

                case "-csl":
                {
                    paramCSLatest = args[i + 1];
                    Program.WriteLine($"Connection string, DB to extract from: {paramCSLatest}");
                    break;
                }

                case "-csb":
                {
                    paramCSBase = args[i + 1];
                    Program.WriteLine($"Connection string, DB to compare to: {paramCSBase}");
                    break;
                }

                case "-l":
                {
                    paramFileWithListOfItems = args[i + 1];
                    Program.WriteLine($"File with list of items: {paramFileWithListOfItems}");
                    break;
                }
                }
            }

            // validate the params
            if (string.IsNullOrEmpty(command))
            {
                PrintWelcomeMsg();
            }

            // call the handler for the command
            switch (command)
            {
            case Commands.GenerateBlankConfigFiles:
            {
                Generators.GenerateBlankConfigs();
                break;
            }

            case Commands.GenerateSecondaryConfigFiles:
            {
                Generators.GenerateSecondaryConfigFiles(Configs.InitialConfig.Load(paramConfig));
                break;
            }

            case Commands.GenerateMasterKeys:
            {
                Generators.CreateMasterKey(Configs.CreateMasterKey.Load(paramConfig));
                break;
            }

            case Commands.GenerateExternalDataSources:
            {
                Generators.CreateExternalDataSource(Configs.CreateExternalDataSource.Load(paramConfig));
                break;
            }

            case Commands.ScriptGenerationForTablesAnsSPs:
            {
                Generators.GenerateScript(Configs.AllTables.Load(paramConfig), paramTemplate, paramRunOn);
                break;
            }

            case Commands.ScriptGenerationGeneric:
            {
                Generators.GenerateScript(Configs.InitialConfig.Load(paramConfig), paramTemplate);
                break;
            }

            case Commands.ScriptGenerationExtractFromDb:
            {
                Generators.ExtractScriptsFromDb(paramCSLatest, paramCSBase, paramFileWithListOfItems);
                break;
            }

            case Commands.AltTableColumnTypes:
            {
                Generators.GenerateAltColumnsScript(Configs.AllTables.Load(paramConfig));
                break;
            }

            case Commands.GenerateSqlCmdBatch:
            {
                Generators.GenerateSqlCmdBatch(Configs.InitialConfig.Load(paramConfig), paramTargetDir, paramRunOn);
                break;
            }

            case Commands.ReplaceInSqlFiles:
            {
                Generators.SearchAndReplace(Configs.InitialConfig.Load(paramConfig), paramGrepFileName, paramTemplate);
                break;
            }

            default:
            {
                PrintWelcomeMsg();
                break;
            }
            }

            ExitApp(0);
        }