public override Dictionary <int, DiskDirectoryCollection> GetParentDirectories(int userID, int directoryID) { Dictionary <int, DiskDirectoryCollection> menuDirectories = new Dictionary <int, DiskDirectoryCollection>(); int parentID = directoryID; using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetCurrentAndParentDirectories"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter("@UserID", userID, SqlDbType.Int); query.CreateParameter("@DirectoryID", directoryID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { do { DiskDirectoryCollection directories = new DiskDirectoryCollection(reader); if (directories.Count != 0) { parentID = directories[0].ParentID; if (!menuDirectories.ContainsKey(parentID)) { menuDirectories.Add(parentID, directories); } } }while (reader.NextResult()); } } return(menuDirectories); }
public override void GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files) { files = null; directories = null; using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetDiskFiles"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter("@UserID", userID, SqlDbType.Int); query.CreateParameter("@DirectoryID", directoryID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { directories = new DiskDirectoryCollection(reader); if (reader.NextResult()) { files = new DiskFileCollection(reader); } } } if (files == null) { files = new DiskFileCollection(); } if (directories == null) { directories = new DiskDirectoryCollection(); } }
public override void GetDiskDirectoriesAndDiskFiles(int userID, int directoryID, IEnumerable <int> directoryIds, IEnumerable <int> diskFileIds, out DiskDirectoryCollection directories, out DiskFileCollection diskFiles) { directories = null;; diskFiles = null; bool hasDirectories = ValidateUtil.HasItems(directoryIds); bool hasFiles = ValidateUtil.HasItems(diskFileIds); StringBuilder sqlBuilder = new StringBuilder(); using (SqlQuery query = new SqlQuery()) { if (hasDirectories) { sqlBuilder.Append("SELECT * FROM bx_DiskDirectories WHERE DirectoryID IN (@DirectoryIds) ORDER BY Name;"); query.CreateInParameter("@DirectoryIds", directoryIds); } if (hasFiles) { sqlBuilder.Append("SELECT * FROM bx_DiskFiles WHERE DiskFileID IN (@DiskFileIds) ORDER BY FileName;"); query.CreateInParameter("@DiskFileIds", diskFileIds); } query.CommandType = CommandType.Text; query.CommandText = sqlBuilder.ToString(); using (XSqlDataReader reader = query.ExecuteReader()) { if (hasDirectories) { directories = new DiskDirectoryCollection(reader); //while (reader.Read()) //{ // directories.Add(new DiskDirectory(reader)); //} } if (hasFiles) { if (hasDirectories) { reader.NextResult(); } diskFiles = new DiskFileCollection(reader); //while (reader.Read()) //{ // diskFiles.Add(new DiskFile(reader)); //} } } } if (directories == null) { directories = new DiskDirectoryCollection(); } if (diskFiles == null) { diskFiles = new DiskFileCollection(); } }
/// <summary> /// ȡ�ø�Ŀ¼�ļ�����һ��Ŀ¼�������ļ����ļ��С� /// </summary> /// <param name="userID">��ǰ�û���ID��</param> /// <param name="directoryID">���ļ��е�ID��</param> /// <param name="directories">������ļ���ʵ��<see cref="DiskDirectory"/>���б��</param> /// <param name="files">������ļ�ʵ��<see cref="DiskFile"/>�б��</param> /// <param name="totalSize">��ǰ��Ŀ¼���������ļ��Ĵ�С��</param> /// <returns>����ɹ�ȡ����<c>true</c>,����<c>false</c>��</returns> public List <IFile> GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files, FileOrderBy orderBy, bool isDesc, ExtensionList fileTypes) { List <IFile> dirAndFiles; int fileTypeKey = fileTypes == null || fileTypes.Count == 0?0: fileTypes.ToString("").GetHashCode(); string cachekeyOfDirectorys = string.Format(cacheKey_directoryList, userID, directoryID); string cacheKeyOfFiles = string.Format(cacheKey_fileList, userID, directoryID, fileTypeKey); if (!CacheUtil.TryGetValue <DiskFileCollection>(cacheKey_fileList, out files) || CacheUtil.TryGetValue <DiskDirectoryCollection>(cachekeyOfDirectorys, out directories)) { DiskDao.Instance.GetDiskFiles(userID, directoryID, out directories, out files); CacheUtil.Set <DiskFileCollection>(cacheKeyOfFiles, files); CacheUtil.Set <DiskDirectoryCollection>(cachekeyOfDirectorys, directories); } /*���´������ܺܲ ԭ����3.0��BO������Ӧ�����ܣ� ��ʱ��Ӧ����������ѭ������*/ string cacheKeyOfAllFiles = string.Format(cacheKey_directoryList, userID, directoryID, orderBy, isDesc); if (!CacheUtil.TryGetValue <List <IFile> >(cacheKeyOfAllFiles, out dirAndFiles)) { dirAndFiles = new List <IFile>(directories.Count + files.Count); if (orderBy != FileOrderBy.None) { DiskFile temp; int v; for (int i = 0; i < files.Count - 1; i++) { for (int j = i + 1; j < files.Count; j++) { v = CompareFile(files[i], files[j], orderBy); if (isDesc) { if (v > 0) { temp = files[i]; files[i] = files[j]; files[j] = temp; } } else { if (v < 0) { temp = files[j]; files[j] = files[i]; files[i] = temp; } } } } DiskDirectory tempDir; for (int i = 0; i < directories.Count - 1; i++) { for (int j = i + 1; j < directories.Count; j++) { v = CompareFile(directories[i], directories[j], orderBy); if (isDesc) { if (v > 0) { tempDir = directories[i]; directories[i] = directories[j]; directories[j] = tempDir; } } else { if (v < 0) { tempDir = directories[j]; directories[j] = directories[i]; directories[i] = tempDir; } } } } } if (orderBy == FileOrderBy.Type && isDesc == false) { foreach (DiskFile file in files) { if (fileTypes != null && fileTypes.Count > 0 && !fileTypes.Contains(file.ExtensionName)) { continue; } dirAndFiles.Add(file); } foreach (IFile dir in directories) { dirAndFiles.Add(dir); } } else { foreach (IFile dir in directories) { dirAndFiles.Add(dir); } foreach (DiskFile file in files) { if (fileTypes != null && fileTypes.Count > 0 && !fileTypes.Contains(file.ExtensionName)) { continue; } dirAndFiles.Add(file); } } CacheUtil.RemoveBySearch(string.Format(cacheKey_allFileListRoot, userID, directoryID)); CacheUtil.Set <List <IFile> >(cacheKeyOfAllFiles, dirAndFiles); } return(dirAndFiles); }
public void GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files) { GetDiskFiles(userID, directoryID, out directories, out files, FileOrderBy.None, false, null); }
public void GetDiskDirectoriesAndDiskFiles(int userID, int directoryID, IEnumerable <int> directoryIDs, IEnumerable <int> diskFileIDs, out DiskDirectoryCollection directories, out DiskFileCollection diskFiles) { DiskDao.Instance.GetDiskDirectoriesAndDiskFiles( userID, directoryID, directoryIDs, diskFileIDs, out directories, out diskFiles); }
public List <IFile> GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files, FileOrderBy orderBy, bool isDesc) { return(GetDiskFiles(userID, directoryID, out directories, out files, orderBy, isDesc, null)); }
public override Dictionary<int, DiskDirectoryCollection> GetParentDirectories(int userID, int directoryID) { Dictionary<int, DiskDirectoryCollection> menuDirectories = new Dictionary<int, DiskDirectoryCollection>(); int parentID = directoryID; using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetCurrentAndParentDirectories"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter("@UserID", userID, SqlDbType.Int); query.CreateParameter("@DirectoryID", directoryID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { do { DiskDirectoryCollection directories = new DiskDirectoryCollection(reader); if (directories.Count != 0) { parentID = directories[0].ParentID; if (!menuDirectories.ContainsKey(parentID)) { menuDirectories.Add(parentID, directories); } } } while (reader.NextResult()); } } return menuDirectories; }
public override void GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files) { files = null; directories = null; using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetDiskFiles"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter("@UserID", userID, SqlDbType.Int); query.CreateParameter("@DirectoryID", directoryID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { directories = new DiskDirectoryCollection(reader); if (reader.NextResult()) files = new DiskFileCollection(reader); } } if (files == null) files = new DiskFileCollection(); if (directories == null) directories = new DiskDirectoryCollection(); }
public override void GetDiskDirectoriesAndDiskFiles(int userID, int directoryID, IEnumerable<int> directoryIds, IEnumerable<int> diskFileIds, out DiskDirectoryCollection directories, out DiskFileCollection diskFiles) { directories = null; ; diskFiles = null; bool hasDirectories = ValidateUtil.HasItems(directoryIds); bool hasFiles = ValidateUtil.HasItems(diskFileIds); StringBuilder sqlBuilder = new StringBuilder(); using (SqlQuery query = new SqlQuery()) { if (hasDirectories) { sqlBuilder.Append("SELECT * FROM bx_DiskDirectories WHERE DirectoryID IN (@DirectoryIds) ORDER BY Name;"); query.CreateInParameter("@DirectoryIds", directoryIds); } if (hasFiles) { sqlBuilder.Append("SELECT * FROM bx_DiskFiles WHERE DiskFileID IN (@DiskFileIds) ORDER BY FileName;"); query.CreateInParameter("@DiskFileIds", diskFileIds); } query.CommandType = CommandType.Text; query.CommandText = sqlBuilder.ToString(); using (XSqlDataReader reader = query.ExecuteReader()) { if (hasDirectories) { directories = new DiskDirectoryCollection(reader); //while (reader.Read()) //{ // directories.Add(new DiskDirectory(reader)); //} } if (hasFiles) { if (hasDirectories) reader.NextResult(); diskFiles = new DiskFileCollection(reader); //while (reader.Read()) //{ // diskFiles.Add(new DiskFile(reader)); //} } } } if (directories == null) directories = new DiskDirectoryCollection(); if (diskFiles == null) diskFiles = new DiskFileCollection(); }
public abstract void GetDiskDirectoriesAndDiskFiles(int userID, int directoryID, IEnumerable <int> directoryIds, IEnumerable <int> diskFileIds, out DiskDirectoryCollection directories, out DiskFileCollection diskFiles);
//public abstract int GetUserTodayFiles(int userID); public abstract void GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files);