diff --git a/products/ASC.Files/Core/Utils/FileConverter.cs b/products/ASC.Files/Core/Utils/FileConverter.cs index 7426c8dda0..5aa6caf49d 100644 --- a/products/ASC.Files/Core/Utils/FileConverter.cs +++ b/products/ASC.Files/Core/Utils/FileConverter.cs @@ -52,11 +52,16 @@ public class FileConverterQueue { var task = PeekTask(file); - if (Contains(task)) + if (task != null) { - return; + if (task.Progress != 100) + { + return; + } + + Dequeue(task); } - + var queueResult = new FileConverterOperationResult { Source = JsonSerializer.Serialize(new { id = file.Id, version = file.Version }), @@ -137,15 +142,13 @@ public class FileConverterQueue public async Task GetStatusAsync(KeyValuePair, bool> pair, FileSecurity fileSecurity) { var file = pair.Key; - var operation = PeekTask(pair.Key); + var operation = PeekTask(file); if (operation != null && (pair.Value || await fileSecurity.CanReadAsync(file))) { if (operation.Progress == 100) - { - var task = PeekTask(file); - - Dequeue(task); + { + Dequeue(operation); } return operation; @@ -183,21 +186,6 @@ public class FileConverterQueue }, options); } - private bool Contains(FileConverterOperationResult val) - { - if (val == null) - { - return false; - } - - var queueTasks = LoadFromCache(); - - return queueTasks.Any(x => - { - return String.Compare(x.Source, val.Source) == 0; - }); - } - private bool IsOrphanCacheItem(FileConverterOperationResult x) { return !string.IsNullOrEmpty(x.Processed) @@ -213,7 +201,7 @@ public class FileConverterQueue SaveToCache(listTasks); - return queueTasks; + return listTasks; } private void SaveToCache(IEnumerable queueTasks)