Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
 /// <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();
 }