Ejemplo n.º 1
0
        /// <summary>
        /// Creates a directory at a specific path
        /// </summary>
        /// <param name="VirtualPath">The virtual path to be created</param>
        /// <returns>the new Directory object created</returns>
        /// <remarks>
        /// Virtual path is the path starting from the /files/ containers
        /// The entity is created against the current blog id
        /// </remarks>
        internal override FileSystem.Directory CreateDirectory(string VirtualPath)
        {
            VirtualPath = VirtualPath.VirtualPathToDbPath();
            if (DirectoryExists(VirtualPath))
            {
                return(GetDirectory(VirtualPath));
            }
            var directoryName = "root";

            if (!string.IsNullOrWhiteSpace(VirtualPath))
            {
                directoryName = string.Format("/{0}", VirtualPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries).Last());
            }
            FileSystem.FileStoreDb        db  = new FileSystem.FileStoreDb(this.connectionString);
            FileSystem.FileStoreDirectory dir = new FileSystem.FileStoreDirectory
            {
                BlogID     = Blog.CurrentInstance.Id,
                CreateDate = DateTime.Now,
                FullPath   = VirtualPath,
                Id         = Guid.NewGuid(),
                LastAccess = DateTime.Now,
                Name       = directoryName,
                LastModify = DateTime.Now
            };
            if (!string.IsNullOrWhiteSpace(VirtualPath))
            {
                var parentPath = VirtualPath.Contains("/") ? VirtualPath.Substring(0, VirtualPath.LastIndexOf("/")) : string.Empty;
                dir.ParentID = this.GetDirectory(parentPath).Id;
            }
            db.FileStoreDirectories.InsertOnSubmit(dir);
            db.SubmitChanges();
            db.Dispose();
            return(GetDirectory(VirtualPath));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// copy's the database directory object to a Directory object
 /// </summary>
 /// <param name="inObj">the database directory to copy</param>
 /// <returns>a new Directory object</returns>
 public static FileSystem.Directory CopyToDirectory(this FileSystem.FileStoreDirectory inObj)
 {
     if (inObj == null)
     {
         return(null);
     }
     return(new FileSystem.Directory()
     {
         DateCreated = inObj.CreateDate,
         DateModified = inObj.LastModify,
         FullPath = inObj.FullPath,
         Id = inObj.Id,
         LastAccessTime = inObj.LastAccess,
         Name = inObj.Name,
         IsRoot = inObj.ParentID == null,
     });
 }
 /// <summary>
 /// Creates a directory at a specific path
 /// </summary>
 /// <param name="VirtualPath">The virtual path to be created</param>
 /// <returns>the new Directory object created</returns>
 /// <remarks>
 /// Virtual path is the path starting from the /files/ containers
 /// The entity is created against the current blog id
 /// </remarks>
 internal override FileSystem.Directory CreateDirectory(string VirtualPath)
 {
     VirtualPath = VirtualPath.VirtualPathToDbPath();
     if (DirectoryExists(VirtualPath))
         return GetDirectory(VirtualPath);
     var directoryName = "root";
     if (!string.IsNullOrWhiteSpace(VirtualPath))
         directoryName = string.Format("/{0}", VirtualPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries).Last());
     FileSystem.FileStoreDb db = new FileSystem.FileStoreDb(this.connectionString);
     FileSystem.FileStoreDirectory dir = new FileSystem.FileStoreDirectory
     {
         BlogID = Blog.CurrentInstance.Id,
         CreateDate = DateTime.Now,
         FullPath = VirtualPath,
         Id = Guid.NewGuid(),
         LastAccess = DateTime.Now,
         Name = directoryName,
         LastModify = DateTime.Now
     };
     if (!string.IsNullOrWhiteSpace(VirtualPath))
     {
         var parentPath = VirtualPath.Contains("/") ? VirtualPath.Substring(0, VirtualPath.LastIndexOf("/")) : string.Empty;
         dir.ParentID = this.GetDirectory(parentPath).Id;
     }
     db.FileStoreDirectories.InsertOnSubmit(dir);
     db.SubmitChanges();
     db.Dispose();
     return GetDirectory(VirtualPath);
 }