refactoring

This commit is contained in:
Maksim Chegulov 2023-09-04 13:39:15 +03:00
parent 1f3d63be3d
commit e09e6cc3a6

View File

@ -1006,27 +1006,16 @@ public class FileMarker
private static async Task SendChangeNoticeAsync(IEnumerable<Tag> tags, SocketManager socketManager)
{
await ExecMarkAsync(tags.Where(t => t.EntryType == FileEntryType.File), socketManager.ExecMarkAsNewFilesAsync);
await ExecMarkAsync(tags.Where(t => t.EntryType == FileEntryType.Folder), socketManager.ExecMarkAsNewFoldersAsync);
const int chunkSize = 1000;
return;
async Task ExecMarkAsync(IEnumerable<Tag> filteredTags, Func<IEnumerable<Tag>, Task> requestAction)
foreach (var chunk in tags.Where(t => t.EntryType == FileEntryType.File).Chunk(chunkSize))
{
const int packSize = 1000;
var count = filteredTags.Count();
var processed = 0;
while (processed < count)
{
var pack = filteredTags.Skip(processed)
.Take(packSize)
.ToList();
processed += pack.Count;
await requestAction(pack);
await socketManager.ExecMarkAsNewFilesAsync(chunk);
}
foreach (var chunk in tags.Where(t => t.EntryType == FileEntryType.Folder).Chunk(chunkSize))
{
await socketManager.ExecMarkAsNewFoldersAsync(chunk);
}
}
}