Example #1
0
        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);
        }
Example #2
0
        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();
            }
        }
Example #3
0
        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();
            }
        }
Example #4
0
        /// <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);
        }
Example #5
0
 public void GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files)
 {
     GetDiskFiles(userID, directoryID, out directories, out files, FileOrderBy.None, false, null);
 }
Example #6
0
 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);
 }
Example #7
0
 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));
 }
Example #8
0
        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;
        }
Example #9
0
        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();
        }
Example #10
0
        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();
        }
Example #11
0
 public abstract void GetDiskDirectoriesAndDiskFiles(int userID, int directoryID, IEnumerable <int> directoryIds, IEnumerable <int> diskFileIds, out DiskDirectoryCollection directories, out DiskFileCollection diskFiles);
Example #12
0
        //public abstract int GetUserTodayFiles(int userID);

        public abstract void GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files);