fixed file converter

This commit is contained in:
Alexey Bannov 2023-01-14 17:58:19 +03:00
parent e71573ba9d
commit 48d525970d

View File

@ -52,11 +52,16 @@ public class FileConverterQueue<T>
{ {
var task = PeekTask(file); var task = PeekTask(file);
if (Contains(task)) if (task != null)
{ {
return; if (task.Progress != 100)
{
return;
}
Dequeue(task);
} }
var queueResult = new FileConverterOperationResult var queueResult = new FileConverterOperationResult
{ {
Source = JsonSerializer.Serialize(new { id = file.Id, version = file.Version }), Source = JsonSerializer.Serialize(new { id = file.Id, version = file.Version }),
@ -137,15 +142,13 @@ public class FileConverterQueue<T>
public async Task<FileConverterOperationResult> GetStatusAsync(KeyValuePair<File<T>, bool> pair, FileSecurity fileSecurity) public async Task<FileConverterOperationResult> GetStatusAsync(KeyValuePair<File<T>, bool> pair, FileSecurity fileSecurity)
{ {
var file = pair.Key; var file = pair.Key;
var operation = PeekTask(pair.Key); var operation = PeekTask(file);
if (operation != null && (pair.Value || await fileSecurity.CanReadAsync(file))) if (operation != null && (pair.Value || await fileSecurity.CanReadAsync(file)))
{ {
if (operation.Progress == 100) if (operation.Progress == 100)
{ {
var task = PeekTask(file); Dequeue(operation);
Dequeue(task);
} }
return operation; return operation;
@ -183,21 +186,6 @@ public class FileConverterQueue<T>
}, options); }, 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) private bool IsOrphanCacheItem(FileConverterOperationResult x)
{ {
return !string.IsNullOrEmpty(x.Processed) return !string.IsNullOrEmpty(x.Processed)
@ -213,7 +201,7 @@ public class FileConverterQueue<T>
SaveToCache(listTasks); SaveToCache(listTasks);
return queueTasks; return listTasks;
} }
private void SaveToCache(IEnumerable<FileConverterOperationResult> queueTasks) private void SaveToCache(IEnumerable<FileConverterOperationResult> queueTasks)