public static bool InsertDirectory(string directory, bool IsMapPath = true) { try { using (var db = new Models.MainContext()) { TM.IO.FileDirectory.CreateDirectory(directory, IsMapPath); var path = IsMapPath ? TM.IO.FileDirectory.MapPath(directory.Replace('/', '\\')).Trim('\\') : directory.Replace('/', '\\').Trim('\\'); var FileManager = db.FileManagers.Where(d => d.FullName == path).FirstOrDefault(); if (FileManager == null) { var item = new System.IO.DirectoryInfo(path); FileManager = new Models.FileManager(); FileManager.ID = Guid.NewGuid(); FileManager.ParentID = Guid.Empty; FileManager.Parent = item.Parent.ToString(); FileManager.Root = item.Root.ToString(); FileManager.Subdirectory = "\\"; FileManager.Level = 0; FileManager.Name = item.Name; FileManager.FullName = item.FullName; FileManager.Extension = item.Extension; FileManager.ExtensionIcon = "fa fa-folder-open"; FileManager.Type = string.IsNullOrEmpty(item.Extension) ? TM.Common.Objects.FileManager.directory : TM.Common.Objects.FileManager.file; FileManager.Attributes = item.Attributes.ToString(); FileManager.AttributesEnum = (int)item.Attributes; //item.Key.Attributes.ToString(); //FileManager.Description = null; FileManager.CreationTime = item.CreationTime; FileManager.CreationTimeUtc = item.CreationTimeUtc; FileManager.LastAccessTime = item.LastAccessTime; FileManager.LastAccessTimeUtc = item.LastAccessTimeUtc; FileManager.LastWriteTime = item.LastWriteTime; FileManager.LastWriteTimeUtc = item.LastWriteTimeUtc; FileManager.CreatedBy = Authentication.Auth.AuthUser.id.ToString(); //FileManager.LastAccessBy = Authentication.Auth.AuthUser.id.ToString(); //FileManager.LastWriteBy = Authentication.Auth.AuthUser.id.ToString(); FileManager.Exists = item.Exists; FileManager.Flag = 1; if (item.Parent.ToString() != TM.Common.Directories.Uploads.Trim('\\')) { var tmp = db.FileManagers.Where(d => d.Name == FileManager.Parent && d.Flag > 0).FirstOrDefault(); if (tmp == null) { var directories = directory.Split('\\'); InsertDirectory(directory.Replace("\\" + FileManager.Name, "")); } tmp = db.FileManagers.Where(d => d.Name == FileManager.Parent && d.Flag > 0).FirstOrDefault(); FileManager.ParentID = tmp.ID; FileManager.Subdirectory = tmp.Subdirectory + FileManager.Parent + "\\"; FileManager.Level = tmp.Level + 1; } db.FileManagers.Add(FileManager); } db.SaveChanges(); return(true); } } catch (Exception) { return(false); } }
private dynamic LoadSettings() { IFileSystem fileSystem = null; SiteSettings siteSettings = null; ILog log = LogManager.GetLogger(typeof(FileServiceController)); siteSettings = CacheHelper.GetCurrentSiteSettings(); if (siteSettings == null) { log.Info(Resource.FileSystemSiteSettingsNotLoaded); } FileSystemProvider p = FileSystemManager.Providers[WebConfigSettings.FileSystemProvider]; if (p == null) { log.Info(string.Format(Resource.FileSystemProviderNotLoaded, WebConfigSettings.FileSystemProvider)); } fileSystem = p.GetFileSystem(); if (fileSystem == null) { log.Info(string.Format(Resource.FileSystemNotLoadedFromProvider, WebConfigSettings.FileSystemProvider)); } var rootName = fileSystem.VirtualRoot.Split('/'); var queryString = new { type = Request.QueryString.Get("type"), editor = Request.QueryString.Get("editor"), inputId = Request.QueryString.Get("inputId"), CKEditor = Request.QueryString.Get("CKEditor"), CKEditorFuncNum = Request.QueryString.Get("CKEditorFuncNum") }; var model = new Models.FileManager { OverwriteFiles = WebConfigSettings.FileManagerOverwriteFiles, RootName = rootName[rootName.Count() - 2], FileSystemToken = Global.FileSystemToken.ToString(), VirtualPath = VirtualPathUtility.RemoveTrailingSlash(fileSystem.FileBaseUrl + fileSystem.VirtualRoot.Replace("~", string.Empty)), View = Request.QueryString.Get("view"), Type = queryString.type, Editor = queryString.editor, InputId = queryString.inputId, CKEditorFuncNumber = queryString.CKEditorFuncNum, QueryString = queryString, Upload = "true", Rename = "true", Move = "true", Copy = "true", Edit = "true", Compress = "true", CompressChooseName = "true", Extract = "true", Download = "true", DownloadMultiple = "true", Preview = "true", Remove = WebUser.IsInRoles(siteSettings.RolesThatCanDeleteFilesInEditor) ? "true" : "false", CreateFolder = "true", PagePickerLinkText = Resource.FileManagerPagePickerLink, BackToWebsiteLinkText = Resource.FileManagerBackToWebsite, BackToFileManagerLinkText = Resource.FileManagerBackToManagerLink }; return(model); }
private dynamic LoadSettings(QueryParams queryParams) { IFileSystem fileSystem = null; SiteSettings siteSettings = null; ILog log = LogManager.GetLogger(typeof(FileServiceController)); siteSettings = CacheHelper.GetCurrentSiteSettings(); if (siteSettings == null) { log.Info(Resource.FileSystemSiteSettingsNotLoaded); } FileSystemProvider p = FileSystemManager.Providers[WebConfigSettings.FileSystemProvider]; if (p == null) { log.Info(string.Format(Resource.FileSystemProviderNotLoaded, WebConfigSettings.FileSystemProvider)); } fileSystem = p.GetFileSystem(); if (fileSystem == null) { log.Info(string.Format(Resource.FileSystemNotLoadedFromProvider, WebConfigSettings.FileSystemProvider)); } var virtualPath = VirtualPathUtility.RemoveTrailingSlash(fileSystem.FileBaseUrl + fileSystem.VirtualRoot.Replace("~", string.Empty)); var userFolder = VirtualPathUtility.RemoveTrailingSlash(fileSystem.FileBaseUrl + fileSystem.Permission.UserFolder.Replace("~", string.Empty)); var rootName = virtualPath.Split('/'); var manageFiles = fileSystem.UserHasUploadPermission.ToString().ToLowerInvariant(); var deleteFiles = (WebUser.IsInRoles(siteSettings.RolesThatCanDeleteFilesInEditor) || WebUser.IsContentAdmin || userFolder == virtualPath).ToString().ToLowerInvariant(); var model = new Models.FileManager { OverwriteFiles = WebConfigSettings.FileManagerOverwriteFiles, FileSystemToken = Global.FileSystemToken.ToString(), RootName = userFolder == virtualPath ? Resource.UserFolder : rootName[rootName.Count() - 1], VirtualPath = virtualPath, ReturnFullPath = queryParams.returnFullPath, View = Request.QueryString.Get("view"), Type = queryParams.type, Editor = queryParams.editor, InputId = queryParams.inputId, CKEditorFuncNumber = queryParams.CKEditorFuncNum, QueryString = queryParams, UserFolder = userFolder, Upload = manageFiles, Rename = manageFiles, Move = manageFiles, Copy = manageFiles, Edit = manageFiles, Compress = manageFiles, CompressChooseName = "true", Extract = manageFiles, Download = "true", DownloadMultiple = "true", Preview = "true", Remove = deleteFiles, CreateFolder = manageFiles, PagePickerLinkText = Resource.FileManagerPagePickerLink, BackToWebsiteLinkText = Resource.FileManagerBackToWebsite, BackToFileManagerLinkText = Resource.FileManagerBackToManagerLink }; return(model); }
public static bool InsertFile(string file, bool IsMapPath = true) { try { using (var db = new Models.MainContext()) { file = IsMapPath ? TM.IO.FileDirectory.MapPath(file) : file; var item = new System.IO.FileInfo(file); item = TM.IO.FileDirectory.ReExtensionToLower(item.FullName, false); var fullname = item.FullName.Replace("\\" + item.Name, ""); var directory = db.FileManagers.Where(d => d.FullName == fullname).FirstOrDefault(); if (directory == null) { return(false); } if (item.Name == "Thumbs.db") { return(true); } var FileItem = db.FileManagers.Where(d => d.FullName == item.FullName).FirstOrDefault(); if (FileItem != null) { FileItem.ParentID = directory.ID; db.Entry(FileItem).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(true); } FileItem = new Models.FileManager(); FileItem.ID = Guid.NewGuid(); FileItem.ParentID = directory.ID; FileItem.Parent = directory.Name; FileItem.Root = directory.Root; FileItem.Subdirectory = directory.Subdirectory + directory.Name + "\\"; FileItem.Level = directory.Level + 1; FileItem.Name = item.Name; FileItem.FullName = item.FullName; FileItem.Extension = item.Extension; FileItem.ExtensionIcon = getExtensionIcon(item.Extension); FileItem.Type = string.IsNullOrEmpty(item.Extension) ? TM.Common.Objects.FileManager.directory : TM.Common.Objects.FileManager.file; FileItem.Attributes = item.Attributes.ToString(); FileItem.AttributesEnum = (int)item.Attributes;//item.Key.Attributes.ToString(); FileItem.Length = item.Length; FileItem.IsReadOnly = item.IsReadOnly; //FileItem.Description = null; FileItem.CreationTime = item.CreationTime; FileItem.CreationTimeUtc = item.CreationTimeUtc; FileItem.LastAccessTime = item.LastAccessTime; FileItem.LastAccessTimeUtc = item.LastAccessTimeUtc; FileItem.LastWriteTime = item.LastWriteTime; FileItem.LastWriteTimeUtc = item.LastWriteTimeUtc; FileItem.CreatedBy = Authentication.Auth.AuthUser.id.ToString(); //FileItem.LastAccessBy = Authentication.Auth.AuthUser.id.ToString(); //FileItem.LastWriteBy = Authentication.Auth.AuthUser.id.ToString(); FileItem.Exists = item.Exists; FileItem.Flag = 1; db.FileManagers.Add(FileItem); db.SaveChanges(); return(true); } } catch (Exception) { return(false); } }
public static bool InsertDirectoriesFiles(string path) { try { using (var db = new Models.MainContext()) { var all = getDirectoriesFiles(path.Replace('/', '\\')); foreach (var item in all) { var fullName = item.Key.FullName.Trim('\\'); var FileManager = db.FileManagers.Where(d => d.FullName == fullName).FirstOrDefault(); if (FileManager == null) { FileManager = new Models.FileManager(); FileManager.ID = Guid.NewGuid(); FileManager.ParentID = Guid.Empty; FileManager.Parent = item.Key.Parent.ToString(); FileManager.Root = item.Key.Root.ToString(); FileManager.Subdirectory = "\\"; FileManager.Level = 0; FileManager.Name = item.Key.Name; FileManager.FullName = item.Key.FullName; FileManager.Extension = item.Key.Extension; FileManager.ExtensionIcon = "fa fa-folder-open"; FileManager.Type = string.IsNullOrEmpty(item.Key.Extension) ? TM.Common.Objects.FileManager.directory : TM.Common.Objects.FileManager.file; FileManager.Attributes = item.Key.Attributes.ToString(); FileManager.AttributesEnum = (int)item.Key.Attributes; //item.Key.Attributes.ToString(); //FileManager.Description = null; FileManager.CreationTime = item.Key.CreationTime; FileManager.CreationTimeUtc = item.Key.CreationTimeUtc; FileManager.LastAccessTime = item.Key.LastAccessTime; FileManager.LastAccessTimeUtc = item.Key.LastAccessTimeUtc; FileManager.LastWriteTime = item.Key.LastWriteTime; FileManager.LastWriteTimeUtc = item.Key.LastWriteTimeUtc; FileManager.CreatedBy = Authentication.Auth.AuthUser.id.ToString(); //FileManager.LastAccessBy = Authentication.Auth.AuthUser.id.ToString(); //FileManager.LastWriteBy = Authentication.Auth.AuthUser.id.ToString(); FileManager.Exists = item.Key.Exists; FileManager.Flag = 1; if (item.Key.Parent.ToString() != TM.Common.Directories.Uploads.Trim('\\')) { var tmp = db.FileManagers.Local.Where(d => d.Name == FileManager.Parent && d.Flag > 0).FirstOrDefault(); if (tmp == null) { continue; } FileManager.ParentID = tmp.ID; FileManager.Subdirectory = tmp.Subdirectory + FileManager.Parent + "\\"; FileManager.Level = tmp.Level + 1; } db.FileManagers.Add(FileManager); } // foreach (var file in item.Value) { if (file.Name == "Thumbs.db") { continue; } fullName = file.FullName.Trim('\\'); var FileItem = db.FileManagers.Where(d => d.FullName == fullName).FirstOrDefault(); if (FileItem != null) { FileItem.ParentID = FileManager.ID; db.Entry(FileItem).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); continue; } FileItem = new Models.FileManager(); FileItem.ID = Guid.NewGuid(); FileItem.ParentID = FileManager.ID; FileItem.Parent = item.Key.Name; FileItem.Root = item.Key.Root.ToString(); FileItem.Subdirectory = FileManager.Subdirectory + item.Key.Name + "\\"; FileItem.Level = FileManager.Level + 1; FileItem.Name = file.Name; FileItem.FullName = file.FullName; FileItem.Extension = file.Extension; FileItem.ExtensionIcon = getExtensionIcon(file.Extension); FileItem.Type = string.IsNullOrEmpty(file.Extension) ? TM.Common.Objects.FileManager.directory : TM.Common.Objects.FileManager.file; FileItem.Attributes = file.Attributes.ToString(); FileItem.AttributesEnum = (int)file.Attributes;//item.Key.Attributes.ToString(); FileItem.Length = file.Length; FileItem.IsReadOnly = file.IsReadOnly; //FileItem.Description = null; FileItem.CreationTime = file.CreationTime; FileItem.CreationTimeUtc = file.CreationTimeUtc; FileItem.LastAccessTime = file.LastAccessTime; FileItem.LastAccessTimeUtc = file.LastAccessTimeUtc; FileItem.LastWriteTime = file.LastWriteTime; FileItem.LastWriteTimeUtc = file.LastWriteTimeUtc; FileItem.CreatedBy = Authentication.Auth.AuthUser.id.ToString(); //FileItem.LastAccessBy = Authentication.Auth.AuthUser.id.ToString(); //FileItem.LastWriteBy = Authentication.Auth.AuthUser.id.ToString(); FileItem.Exists = file.Exists; FileItem.Flag = 1; db.FileManagers.Add(FileItem); } } db.SaveChanges(); return(true); } } catch (Exception) { return(false); } }