Example #1
0
        static void PrintSyntax()
        {
            HConsole.PrintIntensive(
                "=== Синтаксис: ===");
            HConsole.PrintExpressive(
                "{0} \"<сервер>\" \"<БД>\" \"<команда>\" \"[параметр команды]\"",
                AssemblyName);

            HConsole.PrintIntensive(
                "=== Список команд (не чувствительно к регистру): ===");
            HConsole.PrintExpressive(
                "{0} {1} создание структуры БД (\"Database.EnsureCreated\")",
                UtilityCommand.CreateStructure, HConsole.LongDash);
            HConsole.PrintExpressive(
                "{0} {1} уничтожение структуры БД; параметр: [NotInTransaction]",
                UtilityCommand.DestroyStructure, HConsole.LongDash);
            HConsole.PrintExpressive(
                "{0} {1} уничтожение+создание структуры БД",
                UtilityCommand.RecreateStructure, HConsole.LongDash);
            HConsole.PrintExpressive(
                "{0} {1} зачистка содержимого таблиц; параметр: [NotInTransaction]",
                UtilityCommand.DeleteData, HConsole.LongDash);
            HConsole.PrintExpressive(
                "{0} {1} наполнение тестовыми данными; параметр: [WithCleanup]",
                UtilityCommand.FillTest, HConsole.LongDash);

            string
                sampleSvr = "(localdb)\\MSSQLLocalDB",
                sampleDB  = "TEST";

            HConsole.PrintIntensive(
                "=== Примеры команд: ===");
            HConsole.Print(
                "DBCorrector \"{1}\" \"{2}\" {0}",
                UtilityCommand.CreateStructure, sampleSvr, sampleDB);
            HConsole.Print(
                "DBCorrector \"{1}\" \"{2}\" {0}",
                UtilityCommand.DestroyStructure, sampleSvr, sampleDB);
            HConsole.Print(
                "DBCorrector \"{1}\" \"{2}\" {0}",
                UtilityCommand.RecreateStructure, sampleSvr, sampleDB);
            HConsole.Print(
                "DBCorrector \"{1}\" \"{2}\" {0} NotInTransaction",
                UtilityCommand.DeleteData, sampleSvr, sampleDB);
            HConsole.Print(
                "DBCorrector \"{1}\" \"{2}\" {0} WithCleanup",
                UtilityCommand.FillTest, sampleSvr, sampleDB);
        }
Example #2
0
        /// <summary>
        /// Основной блок программы (вызывается из "Program.Main")
        /// </summary>
        /// <exception cref="HAppFailureException" />
        static void Run()
        {
            DBC.ConnectionStringAccessor = () =>
                                           $"Server={ServerName};Database={DatabaseName};Trusted_Connection=True;" +
                                           $"Application Name={AssemblyName} (Console App);;Pooling=False";
            HConsole.PrintIntensive($"=== Команда \"{Command}\": ===");
            HConsole.Print($"База данных: [{ServerName}].[{DatabaseName}]");
            try
            {
                switch (Command)
                {
                case UtilityCommand.CreateStructure:
                    CreateStructure_Command();
                    break;

                case UtilityCommand.DestroyStructure:
                    DestroyStructure_Command();
                    break;

                case UtilityCommand.RecreateStructure:
                    RecreateStructure_Command();
                    break;

                case UtilityCommand.DeleteData:
                    DeleteData_Command();
                    break;

                case UtilityCommand.FillTest:
                    FillTest_Command();
                    break;

                default:
                    throw new HDeadCodeBranchException();
                }
            }
            catch (Exception e)
            {
                if (e is HDeadCodeBranchException)
                {
                    throw;
                }
                if (e is OperationFailedException || e is HAppFailureException)
                {
                    throw new HAppFailureException(e.Message);
                }
            }
            HConsole.PrintExpressive("Выполнено.");
        }