Пример #1
0
        //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));
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        private void Search()
        {
            DiskFileFilter filter = DiskFileFilter.GetFromForm();

            filter.Apply("filter", "page");
        }
Пример #4
0
        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;
                }
            }
        }
Пример #5
0
 public abstract DiskFileCollection AdminSearchFiles(DiskFileFilter filter, IEnumerable <Guid> exculdeRoles, int pageIndex);