//public static List<DirectoryInfo> GetTempDirectories() //{ // DirectoryInfo dir = new DirectoryInfo(Globals.GetPath(SystemDirecotry.Temp)); // if (dir.Exists) // { // DirectoryInfo[] dirs = dir.GetDirectories("*", SearchOption.AllDirectories); // List<DirectoryInfo> directories = new List<DirectoryInfo>(); // foreach (DirectoryInfo d in dirs) // { // if (d.GetFiles("*", SearchOption.AllDirectories).Length == 0) // directories.Add(d); // } // return directories; // } // else // return new List<DirectoryInfo>(); //} //public static void DeleteTempDirectoriesFromDisk(List<DirectoryInfo> directories) //{ // foreach(DirectoryInfo dir in directories) // { // try // { // if (dir.GetFiles("*", SearchOption.AllDirectories).Length == 0) // { // dir.Delete(true); // } // } // catch // { } // } //} #endregion public DiskFileCollection AdminSearchFiles(int operatorUserID, DiskFileFilter filter, int pageNumner) { if (!AllSettings.Current.BackendPermissions.HasPermissionForSomeone(operatorUserID, BackendPermissions.ActionWithTarget.Manage_NetDisk)) { return(null); } Guid[] exculdeRoles = AllSettings.Current.BackendPermissions.GetNoPermissionTargetRoleIds(operatorUserID, PermissionTargetType.Content); if (filter.PageSize <= 0) { filter.PageSize = Consts.DefaultPageSize; } if (pageNumner < 1) { pageNumner = 1; } return(DiskDao.Instance.AdminSearchFiles(filter, exculdeRoles, pageNumner)); }
public override DiskFileCollection AdminSearchFiles(DiskFileFilter filter, IEnumerable <Guid> exculdeRoles, int pageIndex) { using (SqlQuery query = new SqlQuery()) { StringBuilder builder = new StringBuilder(); if (filter.UserID != null) { builder.Append(" AND UserID = @UserID"); query.CreateParameter <int>("@UserID", filter.UserID.Value, SqlDbType.Int); } if (filter.Username != null) { builder.Append(" AND UserID IN (SELECT UserID FROM bx_Users WHERE Username LIKE '%' + @Username + '%')"); query.CreateParameter <string>("@Username", filter.Username, SqlDbType.NVarChar, 50); } if (filter.DirectoryName != null) { builder.Append(" AND DirectoryID IN (SELECT DirectoryID FROM bx_DiskDirectories WHERE [Name] LIKE '%' + @DirectoryName + '%')"); query.CreateParameter <string>("@DirectoryName", filter.DirectoryName, SqlDbType.NVarChar, 256); } if (filter.Filename != null) { builder.Append(" AND FileName LIKE '%' + @FileName + '%'"); query.CreateParameter <string>("@FileName", filter.Filename, SqlDbType.NVarChar, 256); } if (filter.Size_1 != null) { builder.Append(" AND FileSize >= @FileSize1"); long size = filter.Size_1.Value; switch (filter.SizeUnit_1) { case FileSizeUnit.K: size *= 1024; break; case FileSizeUnit.M: size *= 1024 * 1024; break; case FileSizeUnit.G: size *= 1024 * 1024 * 1024; break; } query.CreateParameter <long>("@FileSize1", size, SqlDbType.BigInt); } if (filter.Size_2 != null) { builder.Append(" AND FileSize <= @FileSize2"); long size = filter.Size_2.Value; switch (filter.SizeUnit_2) { case FileSizeUnit.K: size *= 1024; break; case FileSizeUnit.M: size *= 1024 * 1024; break; case FileSizeUnit.G: size *= 1024 * 1024 * 1024; break; } query.CreateParameter <long>("@FileSize2", size, SqlDbType.BigInt); } if (filter.CreateDate_1 != null) { builder.Append(" AND CreateDate >= @CreateDate1"); query.CreateParameter <DateTime>("@CreateDate1", filter.CreateDate_1.Value, SqlDbType.DateTime); } if (filter.CreateDate_2 != null) { builder.Append(" AND CreateDate <= @CreateDate2"); query.CreateParameter <DateTime>("@CreateDate2", filter.CreateDate_2.Value, SqlDbType.DateTime); } string noSelectRoles = DaoUtil.GetExcludeRoleSQL("[UserID]", exculdeRoles, query); if (!string.IsNullOrEmpty(noSelectRoles)) { builder.Append(" AND "); builder.Append(noSelectRoles); } if (builder.Length >= 5) { builder.Remove(0, 5); } query.Pager.TableName = "bx_DiskFiles"; query.Pager.PageSize = filter.PageSize; query.Pager.PageNumber = pageIndex; query.Pager.Condition = builder.ToString(); query.Pager.IsDesc = filter.IsDesc == null ? true : filter.IsDesc.Value; query.Pager.PrimaryKey = "DiskFileID"; query.Pager.SortField = "DiskFileID"; query.Pager.SelectCount = true; if (filter.Order != null) { switch (filter.Order.Value) { case FileOrderBy.CreateDate: query.Pager.SortField = "CreateDate"; break; case FileOrderBy.Name: query.Pager.SortField = "FileName"; break; case FileOrderBy.Size: query.Pager.SortField = "FileSize"; break; case FileOrderBy.Type: query.Pager.SortField = "Extension"; break; } } using (XSqlDataReader reader = query.ExecuteReader()) { DiskFileCollection files = new DiskFileCollection(reader); if (reader.NextResult()) { if (reader.Read()) { files.TotalRecords = reader.Get <int>(0); } } return(files); } } }
private void Search() { DiskFileFilter filter = DiskFileFilter.GetFromForm(); filter.Apply("filter", "page"); }
public override DiskFileCollection AdminSearchFiles(DiskFileFilter filter, IEnumerable<Guid> exculdeRoles, int pageIndex) { using (SqlQuery query = new SqlQuery()) { StringBuilder builder = new StringBuilder(); if (filter.UserID != null) { builder.Append(" AND UserID = @UserID"); query.CreateParameter<int>("@UserID", filter.UserID.Value, SqlDbType.Int); } if (filter.Username != null) { builder.Append(" AND UserID IN (SELECT UserID FROM bx_Users WHERE Username LIKE '%' + @Username + '%')"); query.CreateParameter<string>("@Username", filter.Username, SqlDbType.NVarChar, 50); } if (filter.DirectoryName != null) { builder.Append(" AND DirectoryID IN (SELECT DirectoryID FROM bx_DiskDirectories WHERE [Name] LIKE '%' + @DirectoryName + '%')"); query.CreateParameter<string>("@DirectoryName", filter.DirectoryName, SqlDbType.NVarChar, 256); } if (filter.Filename != null) { builder.Append(" AND FileName LIKE '%' + @FileName + '%'"); query.CreateParameter<string>("@FileName", filter.Filename, SqlDbType.NVarChar, 256); } if (filter.Size_1 != null) { builder.Append(" AND FileSize >= @FileSize1"); long size = filter.Size_1.Value; switch (filter.SizeUnit_1) { case FileSizeUnit.K: size *= 1024; break; case FileSizeUnit.M: size *= 1024 * 1024; break; case FileSizeUnit.G: size *= 1024 * 1024 * 1024; break; } query.CreateParameter<long>("@FileSize1", size, SqlDbType.BigInt); } if (filter.Size_2 != null) { builder.Append(" AND FileSize <= @FileSize2"); long size = filter.Size_2.Value; switch (filter.SizeUnit_2) { case FileSizeUnit.K: size *= 1024; break; case FileSizeUnit.M: size *= 1024 * 1024; break; case FileSizeUnit.G: size *= 1024 * 1024 * 1024; break; } query.CreateParameter<long>("@FileSize2", size, SqlDbType.BigInt); } if (filter.CreateDate_1 != null) { builder.Append(" AND CreateDate >= @CreateDate1"); query.CreateParameter<DateTime>("@CreateDate1", filter.CreateDate_1.Value, SqlDbType.DateTime); } if (filter.CreateDate_2 != null) { builder.Append(" AND CreateDate <= @CreateDate2"); query.CreateParameter<DateTime>("@CreateDate2", filter.CreateDate_2.Value, SqlDbType.DateTime); } string noSelectRoles = DaoUtil.GetExcludeRoleSQL("[UserID]", exculdeRoles, query); if (!string.IsNullOrEmpty(noSelectRoles)) { builder.Append(" AND "); builder.Append(noSelectRoles); } if (builder.Length >= 5) builder.Remove(0, 5); query.Pager.TableName = "bx_DiskFiles"; query.Pager.PageSize = filter.PageSize; query.Pager.PageNumber = pageIndex; query.Pager.Condition = builder.ToString(); query.Pager.IsDesc = filter.IsDesc == null ? true : filter.IsDesc.Value; query.Pager.PrimaryKey = "DiskFileID"; query.Pager.SortField = "DiskFileID"; query.Pager.SelectCount = true; if (filter.Order != null) { switch (filter.Order.Value) { case FileOrderBy.CreateDate: query.Pager.SortField = "CreateDate"; break; case FileOrderBy.Name: query.Pager.SortField = "FileName"; break; case FileOrderBy.Size: query.Pager.SortField = "FileSize"; break; case FileOrderBy.Type: query.Pager.SortField = "Extension"; break; } } using (XSqlDataReader reader = query.ExecuteReader()) { DiskFileCollection files = new DiskFileCollection(reader); if (reader.NextResult()) if (reader.Read()) files.TotalRecords = reader.Get<int>(0); return files; } } }
public abstract DiskFileCollection AdminSearchFiles(DiskFileFilter filter, IEnumerable <Guid> exculdeRoles, int pageIndex);