/// <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)); }
/// <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); }