/// <summary> /// uploads a file to the provider container /// </summary> /// <param name="FileBinary">the contents of the file as a byte array</param> /// <param name="FileName">the file name</param> /// <param name="BaseDirectory">the directory object that is the owner</param> /// <param name="Overwrite">boolean wether to overwrite the file if it exists.</param> /// <returns>the new file object</returns> public override FileSystem.File UploadFile(byte[] FileBinary, string FileName, FileSystem.Directory BaseDirectory, bool Overwrite) { var virtualPath = BaseDirectory.FullPath + "/" + FileName; var db = new FileSystem.FileStoreDb(this.connectionString); var files = db.FileStoreFiles.Where(x => x.FileStoreDirectory.Id == BaseDirectory.Id && x.FullPath.ToLower() == virtualPath); if (files.Count() > 0) { if (!Overwrite) { db.Dispose(); throw new Exception("File " + FileName + " already exists in this path."); } db.FileStoreFiles.DeleteAllOnSubmit(files); db.SubmitChanges(); } var file = new FileSystem.FileStoreFile() { Contents = FileBinary, CreateDate = DateTime.Now, FileID = Guid.NewGuid(), FullPath = virtualPath, LastAccess = DateTime.Now, LastModify = DateTime.Now, Name = FileName, ParentDirectoryID = BaseDirectory.Id, Size = FileBinary.Length }; db.FileStoreFiles.InsertOnSubmit(file); db.SubmitChanges(); db.Dispose(); return(file.CopyToFile()); }
/// <summary> /// copys a database File object to a File object /// </summary> /// <param name="inObj">the database file object to copy</param> /// <returns>a new File object</returns> public static FileSystem.File CopyToFile(this FileSystem.FileStoreFile inObj) { if (inObj == null) { return(null); } return(new FileSystem.File() { DateCreated = inObj.CreateDate, DateModified = inObj.LastModify, FilePath = inObj.FullPath, FileSize = inObj.Size, Id = inObj.FileID.ToString(), LastAccessTime = inObj.LastAccess, Name = inObj.Name, FileContents = inObj.Contents.ToArray(), FullPath = inObj.FullPath }); }
/// <summary> /// uploads a file to the provider container /// </summary> /// <param name="FileBinary">the contents of the file as a byte array</param> /// <param name="FileName">the file name</param> /// <param name="BaseDirectory">the directory object that is the owner</param> /// <param name="Overwrite">boolean wether to overwrite the file if it exists.</param> /// <returns>the new file object</returns> public override FileSystem.File UploadFile(byte[] FileBinary, string FileName, FileSystem.Directory BaseDirectory, bool Overwrite) { var virtualPath = BaseDirectory.FullPath + "/" + FileName; var db = new FileSystem.FileStoreDb(this.connectionString); var files = db.FileStoreFiles.Where(x => x.FileStoreDirectory.Id == BaseDirectory.Id && x.FullPath.ToLower() == virtualPath); if (files.Count() > 0) { if (!Overwrite) { db.Dispose(); throw new Exception("File " + FileName + " already exists in this path."); } db.FileStoreFiles.DeleteAllOnSubmit(files); db.SubmitChanges(); } var file = new FileSystem.FileStoreFile() { Contents = FileBinary, CreateDate = DateTime.Now, FileID = Guid.NewGuid(), FullPath = virtualPath, LastAccess = DateTime.Now, LastModify = DateTime.Now, Name = FileName, ParentDirectoryID = BaseDirectory.Id, Size = FileBinary.Length }; db.FileStoreFiles.InsertOnSubmit(file); db.SubmitChanges(); db.Dispose(); return file.CopyToFile(); }