Esempio n. 1
0
        private static TableFileResult GetTablesToCompare(string fileName)
        {
            if (string.IsNullOrWhiteSpace(fileName))
            {
                fileName = $"{InputFile.TablesToCompare}.supersecret";
            }

            List <string> lines     = GetFileLines(fileName);
            const char    separator = '.';

            List <Table> tablesToCompare = lines.Select(line => line.Split(separator))
                                           .Where(parts => parts.Length == Enum.GetValues(typeof(TablePart)).Length)
                                           .Select(parts => new Table(parts[(int)TablePart.SchemaName],
                                                                      parts[(int)TablePart.TableName]))
                                           .ToList();

            List <string> errorMessages = GetFileErrors(lines, separator, Enum.GetValues(typeof(TablePart)).Length, "schema/table format");

            if (errorMessages.Any())
            {
                Console.WriteLine($"Error: Invalid schema/table format in {InputFile.TablesToCompare} file.");
            }

            TableFileResult result = new TableFileResult(tablesToCompare, errorMessages);

            return(result);
        }
Esempio n. 2
0
        private static void CompareTables(string tableFileName, string databaseFileName)
        {
            TableFileResult result = GetTablesToCompare(tableFileName);

            if (result.Tables.Any())
            {
                CompareDatabasePairs(databaseFileName, result.Tables);
            }

            if (result.Errors.Any())
            {
                HandleTopLevelError(AppendLines(result.Errors), false);
            }
            else if (!result.Tables.Any())
            {
                HandleTopLevelError("No tables to compare!");
            }
        }
Esempio n. 3
0
        private static TableFileResult GetTablesToPopulate()
        {
            const string fileName = "TablesToPopulate.supersecret";

            List<string> lines = GetFileLines(fileName);
            const char period = '.';

            List<Table> tables = lines.Select(line => line.Split(period).ToList())
                                        .Where(parts => parts.Count == Enum.GetValues(typeof(TablePart)).Length)
                                        .Select(parts => new Table(parts))
                                        .ToList();

            List<string> errorMessages = GetFileErrors(lines, period, Enum.GetValues(typeof(TablePart)).Length, "schema/table format");

            if (errorMessages.Any())
            {
                //TODO: Write error messages to file
                Console.WriteLine("Error: Invalid schema/table format in TablesToPopulate file.");
            }

            TableFileResult result = new TableFileResult(tables, errorMessages);

            return result;
        }