Exemplo n.º 1
0
 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); }
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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); }
 }
Exemplo n.º 5
0
        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); }
        }