示例#1
0
        public override int Run(string[] remainingArguments)
        {
            if (!Program.IsCorrectlySetup())
            {
                return(0);
            }

            DimConsole.WriteIntro("Checking status against the database");

            base.CheckRecordsTableExists();

            var runFiles = DimFileProcessor.GetRunFiles();

            if (runFiles.Count > 0)
            {
                // Display count of files found.
                DimConsole.WriteLine(string.Format("{0} script(s) found to be run.", runFiles.Count));

                // Display names of files found.
                for (int i = 0, l = runFiles.Count; i < l; i++)
                {
                    int count    = i + 1;
                    var fileName = Path.GetFileName(runFiles[i].FileName);
                    DimConsole.WriteLine(string.Format("{0}. \"{1}\"", count, fileName));
                }
            }
            else
            {
                DimConsole.WriteLine("No scripts found to be run.");
            }

            return(0);
        }
示例#2
0
        public override int Run(string[] remainingArguments)
        {
            if (!Program.IsCorrectlySetup())
            {
                return(0);
            }

            DimConsole.WriteIntro("Run updates on the database");

            base.CheckRecordsTableExists();

            var runFiles = DimFileProcessor.GetRunFiles();

            if (runFiles.Count > 0)
            {
                // Display count of files found.
                DimConsole.WriteLine(string.Format("{0} script(s) found to be run.", runFiles.Count));

                // Display names of files found.
                for (int i = 0, l = runFiles.Count; i < l; i++)
                {
                    int count    = i + 1;
                    var fileName = Path.GetFileName(runFiles[i].FileName);
                    DimConsole.WriteLine(string.Format("{0}. \"{1}\"", count, fileName));
                }

                // Backup before running anything (use for rollback)
                DimConsole.WriteLine("Backing up database (local backup)");
                Backups.SaveFile(base.DryRun, completedCallback : delegate(string fileName)
                {
                    DimConsole.WriteLine("Completed backup:", fileName);
                });

                // Execute all new patches
                foreach (var file in runFiles)
                {
                    DimConsole.WriteLine("Executing: \"" + Path.GetFileName(file.FileName) + "\"");
                    DimFileProcessor.ExecuteFile(file, base.DryRun,
                                                 successCallback : delegate()
                    {
                        DimConsole.WriteLine("Executed successfully!");
                    },
                                                 failureCallback : delegate(string message)
                    {
                        DimConsole.WriteLine("Execution failed:", message);
                    });
                }

                DimConsole.WriteLine("Update completed.");
            }
            else
            {
                DimConsole.WriteLine("No scripts found to be run.");
            }

            return(0);
        }
示例#3
0
        public override int Run(string[] remainingArguments)
        {
            DimConsole.WriteIntro("Run a test");

            var allRecords = DatabaseProvider.RecordRepository.GetAll();

            DimConsole.WriteLine("Read from DB (count: " + allRecords.Count + ")");
            foreach (var record in allRecords)
            {
                DimConsole.WriteInfoLine("'" + record.FileName + "'", record.FileHash, record.Executed.ToString("dd-MMM-yyy hh:mm:ss"));
            }

            var filesOnSystem = DimFileProcessor.GetAllFiles();

            DimConsole.WriteLine("Read from FS (count : " + filesOnSystem.Count + ")");
            foreach (var file in filesOnSystem)
            {
                var hash = DimFileProcessor.GetFileHash(file);
                DimConsole.WriteInfoLine("'" + file.FileName + "'", file.Parent.RunKind.ToString(), hash);
            }

            var filesToRun = DimFileProcessor.GetRunFiles();

            DimConsole.WriteLine("Only \"run\" files (count: " + filesToRun.Count + ")");
            foreach (var file in filesToRun)
            {
                var hash = DimFileProcessor.GetFileHash(file);
                DimConsole.WriteInfoLine("'" + file.FileName + "'", file.Parent.RunKind.ToString(), hash);
            }

//			DimConsole.WriteLine("Find file by FileName:");
//			DimConsole.WriteLine("Please enter a file name:");
//			var fileName = Console.ReadLine();
//			var testFile = DatabaseCommander.GetRecordByFileName(fileName);
//			if(testFile != null)
//				DimConsole.WriteLine("File found!", testFile.FileName, testFile.Executed.ToString("dd-MMM-yyy hh:mm:ss"));
//			else
//				DimConsole.WriteLine("File not found :(");

            DimConsole.WriteLine("Completed test");

            return(0);
        }