🐛 Fix reanalysis query
This commit is contained in:
@@ -47,66 +47,26 @@ public class FileReanalysisService(
|
|||||||
|
|
||||||
private async Task<List<SnCloudFile>> GetFilesNeedingCompressionValidationAsync(int limit = 1000)
|
private async Task<List<SnCloudFile>> GetFilesNeedingCompressionValidationAsync(int limit = 1000)
|
||||||
{
|
{
|
||||||
var files = await db.Files
|
return await db.Files
|
||||||
.Where(f => f.ObjectId != null)
|
.Where(f => f.ObjectId != null)
|
||||||
.Select(f => new SnCloudFile
|
.Include(f => f.Object)
|
||||||
{
|
.ThenInclude(o => o!.FileReplicas)
|
||||||
Id = f.Id,
|
.Where(f => f.Object!.HasCompression)
|
||||||
ObjectId = f.ObjectId,
|
.Where(f => f.Object!.FileReplicas.Any(r => r.IsPrimary))
|
||||||
Object = new SnFileObject
|
|
||||||
{
|
|
||||||
Id = f.Object.Id,
|
|
||||||
HasCompression = f.Object.HasCompression,
|
|
||||||
FileReplicas = f.Object.FileReplicas.Where(r => r.IsPrimary).ToList()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.Where(f => f.Object != null && f.Object.HasCompression)
|
|
||||||
.Where(f => f.Object!.FileReplicas.Count > 0)
|
|
||||||
.OrderBy(f => f.Object!.Id)
|
|
||||||
.Take(limit)
|
.Take(limit)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
// Load objects for tracking updates
|
|
||||||
var objectIds = files.Select(f => f.ObjectId).ToList();
|
|
||||||
var objects = await db.FileObjects.Where(o => objectIds.Contains(o.Id)).ToDictionaryAsync(o => o.Id);
|
|
||||||
foreach (var file in files)
|
|
||||||
{
|
|
||||||
file.Object = objects[file.ObjectId!];
|
|
||||||
}
|
|
||||||
|
|
||||||
return files;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<List<SnCloudFile>> GetFilesNeedingThumbnailValidationAsync(int limit = 1000)
|
private async Task<List<SnCloudFile>> GetFilesNeedingThumbnailValidationAsync(int limit = 1000)
|
||||||
{
|
{
|
||||||
var files = await db.Files
|
return await db.Files
|
||||||
.Where(f => f.ObjectId != null)
|
.Where(f => f.ObjectId != null)
|
||||||
.Select(f => new SnCloudFile
|
.Include(f => f.Object)
|
||||||
{
|
.ThenInclude(o => o!.FileReplicas)
|
||||||
Id = f.Id,
|
.Where(f => f.Object!.HasThumbnail)
|
||||||
ObjectId = f.ObjectId,
|
.Where(f => f.Object!.FileReplicas.Any(r => r.IsPrimary))
|
||||||
Object = new SnFileObject
|
|
||||||
{
|
|
||||||
Id = f.Object.Id,
|
|
||||||
HasThumbnail = f.Object.HasThumbnail,
|
|
||||||
FileReplicas = f.Object.FileReplicas.Where(r => r.IsPrimary).ToList()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.Where(f => f.Object != null && f.Object.HasThumbnail)
|
|
||||||
.Where(f => f.Object!.FileReplicas.Count > 0)
|
|
||||||
.OrderBy(f => f.Object!.Id)
|
|
||||||
.Take(limit)
|
.Take(limit)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
// Load objects for tracking updates
|
|
||||||
var objectIds = files.Select(f => f.ObjectId).ToList();
|
|
||||||
var objects = await db.FileObjects.Where(o => objectIds.Contains(o.Id)).ToDictionaryAsync(o => o.Id);
|
|
||||||
foreach (var file in files)
|
|
||||||
{
|
|
||||||
file.Object = objects[file.ObjectId!];
|
|
||||||
}
|
|
||||||
|
|
||||||
return files;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> ReanalyzeFileAsync(SnCloudFile file)
|
private async Task<bool> ReanalyzeFileAsync(SnCloudFile file)
|
||||||
|
|||||||
Reference in New Issue
Block a user