Ejemplo n.º 1
0
        private async Task <string> _ValidateRunAsync(int i)
        {
            var file = this.Files.ElementAtOrDefault(i);

            // Write Log
            string t = FormatCli.H2($"Task: { (i + 1).ToString() }");

            t += FormatCli.KeyValue("File", file.File);
            t += FormatCli.KeyValue("Checksum", file.Checksum);

            //Checks
            var path = DirFile.Combine(this.AppSettings.Path.Export, file.File);

            if (!System.IO.File.Exists(path))
            {
                t += Environment.NewLine;
                t += $"Error: Could not find file {path}";
                return(t);
            }

            var checksum = await Task.Run(() => FilesModel.Hash(path));

            if (checksum != file.Checksum)
            {
                t += Environment.NewLine;
                t += $"Error: Checksum is not identical, backup maybe corrupted!";
                return(t);
            }

            t += FormatCli.KeyValue("Status", "Valid!");

            return(t);
        }
Ejemplo n.º 2
0
        private string _ImportParams(int i)
        {
            var file = this.Files.ElementAtOrDefault(i);

            // Write Log
            string t = FormatCli.H2($"Task: { (i + 1).ToString() }");

            t += FormatCli.KeyValue("File", file.File);
            t += FormatCli.KeyValue("Checksum", file.Checksum);

            //Checks
            var path = DirFile.Combine(this.AppSettings.Path.Export, file.File);

            if (!System.IO.File.Exists(path))
            {
                t += Environment.NewLine;
                t += $"Error: Could not find file {path}";
                return(t);
            }
            this.Import.File = path;

            t += FormatCli.H3("Parameter");
            var connector = this.Import.Config.Format == "p" ? new Connectors.Psql(AppSettings).BinName : this.Import.BinName;

            t += $"{ connector } { this.Import.GetPatameters(this.Connect) }" + Environment.NewLine;

            return(t);
        }
Ejemplo n.º 3
0
        public void Combine_Linux()
        {
            var tests = new List <Tuple <string, string, string> >()
            {
                new Tuple <string, string, string>("/var/log/", "/sample.log", "/var/log/sample.log"),
                new Tuple <string, string, string>("/var/log", "/sample.log", "/var/log/sample.log"),
                new Tuple <string, string, string>("/var/log/", "sample.log", "/var/log/sample.log"),
                new Tuple <string, string, string>("/var/log", "sample.log", "/var/log/sample.log"),
            };

            foreach (var test in tests)
            {
                var c = DirFile.Combine(test.Item1, test.Item2);
                Assert.Equal(test.Item3, c);
            }
        }
Ejemplo n.º 4
0
        public void Combine_Windows()
        {
            var tests = new List <Tuple <string, string, string> >()
            {
                new Tuple <string, string, string>("C:\\Tmp\\", "\\File.txt", "C:\\Tmp\\File.txt"),
                new Tuple <string, string, string>("C:\\Tmp\\", "File.txt", "C:\\Tmp\\File.txt"),
                new Tuple <string, string, string>("C:\\Tmp", "\\File.txt", "C:\\Tmp\\File.txt"),
                new Tuple <string, string, string>("C:\\Tmp", "File.txt", "C:\\Tmp\\File.txt"),
            };

            foreach (var test in tests)
            {
                var c = DirFile.Combine(test.Item1, test.Item2);
                Assert.Equal(test.Item3, c);
            }
        }
Ejemplo n.º 5
0
        private async Task <string> _ImportRunTaskAsync(int i)
        {
            var file = this.Files.ElementAtOrDefault(i);

            // Write Log
            string t = FormatCli.H2($"Task: { (i + 1).ToString() }");

            t += FormatCli.KeyValue("File", file.File);
            t += FormatCli.KeyValue("Checksum", file.Checksum);

            //Checks
            var path = DirFile.Combine(this.AppSettings.Path.Export, file.File);

            if (!System.IO.File.Exists(path))
            {
                t += Environment.NewLine;
                t += $"Error: Could not find file {path}";
                return(t);
            }
            this.Import.File = path;

            // Validate
            if (this.Import.SkipValidation)
            {
                t += FormatCli.KeyValue("Status", "Skipped!");
            }
            else
            {
                var checksum = await Task.Run(() => FilesModel.Hash(path));

                if (checksum != file.Checksum)
                {
                    t += Environment.NewLine;
                    t += $"Error: Checksum is not identical, backup maybe corrupted!";
                    return(t);
                }

                t += FormatCli.KeyValue("Status", "Valid!");
            }

            // Decompress
            var decompress = await this.Import.DecompressAsync();

            // Import
            var task = await this.Import.RunAsync(this.Connect, this.Output);

            task.Duartion.Add(decompress.Duartion);

            t += FormatCli.KeyValue("Duration", task.Duartion.TotalMinutes + " min");
            if (this.Import.Config.Verbose)
            {
                t += FormatCli.H3("Parameter");
                var connector = this.Import.Config.Format == "p" ? new Connectors.Psql(AppSettings).BinName : this.Import.BinName;
                t += $"{ connector } { this.Import.GetPatameters(this.Connect) }" + Environment.NewLine;
            }

            if (!string.IsNullOrEmpty(task.Ouput))
            {
                t += FormatCli.H3("Output:");
                t += task.Ouput;
            }

            if (!string.IsNullOrEmpty(task.Error))
            {
                t += FormatCli.H3("Error:");
                t += task.Error;
            }

            return(t);
        }