public CheckResult AttachMultipleFiles(string[] files) { using (var db = DB.GetContext()) { KeyBinder key = new KeyBinder(); try { foreach (string file in files) { FileBlobModel mod = new FileBlobModel(); mod.BlobName = Path.GetFileNameWithoutExtension(file); mod.BlobExtension = Path.GetExtension(file); mod.BlobData = File.ReadAllBytes(file); mod.DriverID = this.CreationInfo.DriverID; FileBlobRepository.SaveBlob(db, key, mod); } db.SaveChanges(); key.BindKeys(); return(new CheckResult()); } catch (Exception ex) { key.RollbackKeys(); return(new CheckResult(ex)); } } }
public CheckResult SaveFile(FileBlobModel model) { if (!model.IsChanged) { return(new CheckResult(model)); } using (DSModel db = DB.GetContext()) { var check = FileBlobValidator.ValidateSave(db, model); if (check.Failed) { return(check); } KeyBinder key = new KeyBinder(); try { FileBlobRepository.SaveBlob(db, key, model); db.SaveChanges(); key.BindKeys(); model.IsChanged = false; return(new CheckResult(model)); } catch (Exception ex) { key.RollbackKeys(); return(new CheckResult(ex)); } } }
public static void SaveBlob(DSModel db, KeyBinder key, FileBlobModel model) { if (db == null) { throw new ArgumentNullException("db"); } if (key == null) { throw new ArgumentNullException("key"); } if (model == null) { throw new ArgumentNullException("model"); } model.UserID = GLOB.User.UserID; model.LastUpdateTime = DateTime.Now; if (model.BlobID == 0) { InsertBlob(db, key, model); } else { UpdateBlob(db, key, model); } }
public CheckResult DeleteFile(FileBlobViewModel model) { FileBlobModel mod = new FileBlobModel(); mod.BlobID = model.BlobID; return(this.DeleteFile(mod)); }
private static void UpdateBlob(DSModel db, KeyBinder key, FileBlobModel model) { FileBlob poco = db.FileBlobs.Where(b => b.BlobID == model.BlobID).FirstOrDefault(); if (poco == null) { throw new ArgumentException("File does not exist!", "BlobID"); } model.Map(poco); }
private static void InsertBlob(DSModel db, KeyBinder key, FileBlobModel model) { key.AddRollback(model.BlobID, model, model.GetName(p => p.BlobID)); FileBlob poco = new FileBlob(); model.Map(poco); db.Add(poco); key.AddKey(poco, model, model.GetName(p => p.BlobID)); }
public static CheckResult ValidateSave(DSModel db, FileBlobModel model) { CheckResult res = new CheckResult(model); if (string.IsNullOrWhiteSpace(model.BlobName)) { res.AddError("File name cannot bet empty!", model.GetName(p => p.BlobName)); } if (string.IsNullOrWhiteSpace(model.BlobExtension)) { res.AddError("File extension cannot be empty!", model.GetName(p => p.BlobExtension)); } if (model.BlobData == null || model.BlobData.Length == 0) { res.AddError("File data cannot be empty!", model.GetName(p => p.BlobData)); } return(res); }
public static void DeleteBlob(DSModel db, KeyBinder key, FileBlobModel model) { if (db == null) { throw new ArgumentNullException("db"); } if (key == null) { throw new ArgumentNullException("key"); } if (model == null) { throw new ArgumentNullException("model"); } db.FileBlobs .Where(b => b.BlobID == model.BlobID) .DeleteAll(); }
public static CheckResult ValidateDelete(DSModel db, FileBlobModel model) { CheckResult res = new CheckResult(model); return(res); }