🐛 Fix file index queries
This commit is contained in:
@@ -56,8 +56,8 @@ public class FileIndexController(
|
|||||||
{
|
{
|
||||||
"name" => orderDesc ? fileIndexes.OrderByDescending(fi => fi.File.Name).ToList()
|
"name" => orderDesc ? fileIndexes.OrderByDescending(fi => fi.File.Name).ToList()
|
||||||
: fileIndexes.OrderBy(fi => fi.File.Name).ToList(),
|
: fileIndexes.OrderBy(fi => fi.File.Name).ToList(),
|
||||||
"size" => orderDesc ? fileIndexes.OrderByDescending(fi => fi.File.Size).ToList()
|
"size" => orderDesc ? fileIndexes.OrderByDescending(fi => fi.File.Object!.Size).ToList()
|
||||||
: fileIndexes.OrderBy(fi => fi.File.Size).ToList(),
|
: fileIndexes.OrderBy(fi => fi.File.Object!.Size).ToList(),
|
||||||
_ => orderDesc ? fileIndexes.OrderByDescending(fi => fi.File.CreatedAt).ToList()
|
_ => orderDesc ? fileIndexes.OrderByDescending(fi => fi.File.CreatedAt).ToList()
|
||||||
: fileIndexes.OrderBy(fi => fi.File.CreatedAt).ToList()
|
: fileIndexes.OrderBy(fi => fi.File.CreatedAt).ToList()
|
||||||
};
|
};
|
||||||
@@ -211,7 +211,7 @@ public class FileIndexController(
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var filesQuery = db.Files
|
var baseQuery = db.Files
|
||||||
.Where(f => f.AccountId == accountId
|
.Where(f => f.AccountId == accountId
|
||||||
&& f.IsMarkedRecycle == recycled
|
&& f.IsMarkedRecycle == recycled
|
||||||
&& !db.FileIndexes.Any(fi => fi.FileId == f.Id && fi.AccountId == accountId)
|
&& !db.FileIndexes.Any(fi => fi.FileId == f.Id && fi.AccountId == accountId)
|
||||||
@@ -219,24 +219,23 @@ public class FileIndexController(
|
|||||||
.Include(f => f.Object)
|
.Include(f => f.Object)
|
||||||
.AsQueryable();
|
.AsQueryable();
|
||||||
|
|
||||||
// Apply sorting
|
if (pool.HasValue) baseQuery = baseQuery.Where(f => f.Object!.FileReplicas.Any(r => r.PoolId == pool.Value));
|
||||||
filesQuery = order.ToLower() switch
|
|
||||||
{
|
|
||||||
"name" => orderDesc ? filesQuery.OrderByDescending(f => f.Name)
|
|
||||||
: filesQuery.OrderBy(f => f.Name),
|
|
||||||
"size" => orderDesc ? filesQuery.OrderByDescending(f => f.Size)
|
|
||||||
: filesQuery.OrderBy(f => f.Size),
|
|
||||||
_ => orderDesc ? filesQuery.OrderByDescending(f => f.CreatedAt)
|
|
||||||
: filesQuery.OrderBy(f => f.CreatedAt)
|
|
||||||
};
|
|
||||||
|
|
||||||
if (pool.HasValue) filesQuery = filesQuery.Where(f => f.Object!.FileReplicas.Any(r => r.PoolId == pool.Value));
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(query))
|
if (!string.IsNullOrWhiteSpace(query))
|
||||||
{
|
{
|
||||||
filesQuery = filesQuery.Where(f => f.Name.Contains(query));
|
baseQuery = baseQuery.Where(f => f.Name.Contains(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var filesQuery = order.ToLower() switch
|
||||||
|
{
|
||||||
|
"name" => orderDesc ? baseQuery.OrderByDescending(f => f.Name)
|
||||||
|
: baseQuery.OrderBy(f => f.Name),
|
||||||
|
"size" => orderDesc ? baseQuery.OrderByDescending(f => f.Object.Size)
|
||||||
|
: baseQuery.OrderBy(f => f.Object.Size),
|
||||||
|
_ => orderDesc ? baseQuery.OrderByDescending(f => f.CreatedAt)
|
||||||
|
: baseQuery.OrderBy(f => f.CreatedAt)
|
||||||
|
};
|
||||||
|
|
||||||
var totalCount = await filesQuery.CountAsync();
|
var totalCount = await filesQuery.CountAsync();
|
||||||
|
|
||||||
Response.Headers.Append("X-Total", totalCount.ToString());
|
Response.Headers.Append("X-Total", totalCount.ToString());
|
||||||
|
|||||||
Reference in New Issue
Block a user