private void ValidateSchema(SqlConnection connection, IEnumerable <TableData> tables)
        {
            var schema = new SqlCommand("SELECT TOP 1 [Schema] FROM Sitecore.JobInfo", connection).ExecuteScalar() as string;

            if (schema == null ||
                !TableDataHelpers.FieldsAreEqual(tables.Select(t => t.Schema),
                                                 TableDataHelpers.Deserialize(schema)))
            {
                throw new Exception("Schema check failed. The existing schema does not match the job's schema.");
            }
        }
        public IList <TableData> Load(string tempPath)
        {
            var cultureName = "en-US";
            var delim       = "\t";

            var csvConfig = RootState.Select("export");

            if (csvConfig != null)
            {
                cultureName = csvConfig.TryGet("culture", cultureName);
                delim       = csvConfig.TryGet("delim", delim);
            }

            var schemas = TableDataHelpers.Deserialize(File.ReadAllText(Path.Combine(tempPath, "Schema.json")));

            return
                (schemas.Select(
                     s =>
                     (TableData) new CsvTableData(s, Path.Combine(tempPath, s.Name + ".txt"), delim,
                                                  CultureInfo.GetCultureInfo(cultureName))).ToList());
        }