public DataFile Export(string database) { if (!context.DatabaseExists(database)) { throw new InvalidOperationException("database does not exist"); } string folderName = Guid.NewGuid().ToString(); string zipName = folderName + DataConfig.zipExt; string absoluteFolderPath = Path.Combine(DataConfig.baseDir, DataConfig.exportDir, folderName); string absoluteZipPath = Path.Combine(DataConfig.baseDir, DataConfig.exportDir, zipName); Directory.CreateDirectory(absoluteFolderPath); TableCollection tables = context.Tables; for (int i = 0; i < tables.Count; i++) { string tableName = tables[i].Name; StreamWriter writer = new StreamWriter(Path.Combine(absoluteFolderPath, tableName + DataConfig.csvExt)); string selectQuery = SQLQueryGenerator.GetSelectQuery(tableName); context.ExecuteReader(selectQuery, (reader) => CSVReadWrite.CreateCsvFile(reader, writer)); } ZipFile.CreateFromDirectory(absoluteFolderPath, absoluteZipPath); Directory.Delete(absoluteFolderPath, true); DataFile file = new DataFile(Path.Combine(DataConfig.baseDir, DataConfig.exportDir, zipName), zipName, database); return(file); }
public DataFile Export(string database) { string fileName = database + DataConfig.xmlExt; string relativePath = Path.Combine(DataConfig.exportDir, fileName); string absolutePath = Path.Combine(DataConfig.baseDir, relativePath); string query = string.Empty; TableCollection tables = context.Tables; for (int i = 0; i < tables.Count; i++) { if (i > 0) { query += ";"; } query += SQLQueryGenerator.GetSelectQuery(tables[i].Name); } DataSet dataSet = context.SelectRows(query); dataSet.DataSetName = database; for (int i = 0; i < dataSet.Tables.Count; i++) { dataSet.Tables[i].TableName = tables[i].Name; } DataFile file = new DataFile(absolutePath, fileName, database); dataSet.WriteXml(file.path); return(file); }
public List <ColumnModel> GetColumns(string table) { List <ColumnModel> columns = new List <ColumnModel>(); ColumnCollection collection = context.Tables[table].Columns; string query = SQLQueryGenerator.GetSelectQuery(table); context.ExecuteReader(query, (reader) => DataModelFactory.FillColumns(reader, collection, columns)); return(columns); }