public static DataTable SelectAllFiles() //Read all files from database with context { //Create DataTable and columns from FileStorageView DataTable dt = new DataTable(); Type FileStorage = typeof(FileStorageView); var modelFields = FileStorage.GetProperties().ToList(); foreach (var item in modelFields) { dt.Columns.Add(item.Name, item.PropertyType); } //Get table FileStorage from database and fill datatable using (var db = new FilestorageContext()) { var list = db.FileStorages.Select(fs => new FileStorageView { Id = fs.Id, file_name = fs.file_name, file_format = fs.file_format }).ToList(); foreach (var item in list) { DataRow row = dt.NewRow(); row["Id"] = item.Id; row["file_name"] = item.file_name; row["file_format"] = item.file_format; dt.Rows.Add(row); } } return(dt); }
public static void SaveFileToDatabase(string content, string fileName, string fileType, InfoLabel lbInfo) //Zip and Save file to DB { //Zip file before write to DB byte[] _fileToSave_bytes = ZipContent(content, fileName); using (var db = new FilestorageContext()) { FileStorage f1 = new FileStorage(); f1.file_name = fileName; f1.file_format = fileType; f1.content = _fileToSave_bytes; db.FileStorages.Add(f1); db.SaveChanges(); } lbInfo.Print(fileName + " saved. Storage: Database"); }
public static string ReadFileContentByID(int clickedFile) //GetFile from database by ID, unzip content { using (var db = new FilestorageContext()) { List <FileStorage> selectedFileRow = db.FileStorages.Where(x => x.Id == clickedFile).ToList(); byte[] content = selectedFileRow.FirstOrDefault().content; //Unzip content if it zipped Stream checkedZipStream = new MemoryStream(content); if (ZipFile.IsZipFile(checkedZipStream, false)) { content = UnzipContent(content); } System.Text.Encoding enc = System.Text.Encoding.UTF8; string selectedFile = enc.GetString(content); return(selectedFile); } }