Re-add books to queue that failed or were cancelled.
This commit is contained in:
parent
a9375f1520
commit
3b7d5a354f
@ -118,7 +118,15 @@ namespace LibationAvalonia.ViewModels
|
|||||||
#region Add Books to Queue
|
#region Add Books to Queue
|
||||||
|
|
||||||
private bool isBookInQueue(LibraryBook libraryBook)
|
private bool isBookInQueue(LibraryBook libraryBook)
|
||||||
=> Queue.Any(b => b?.LibraryBook?.Book?.AudibleProductId == libraryBook.Book.AudibleProductId);
|
{
|
||||||
|
var entry = Queue.FirstOrDefault(b => b?.LibraryBook?.Book?.AudibleProductId == libraryBook.Book.AudibleProductId);
|
||||||
|
if (entry == null)
|
||||||
|
return false;
|
||||||
|
else if (entry.Status is ProcessBookStatus.Cancelled or ProcessBookStatus.Failed)
|
||||||
|
return !Queue.RemoveCompleted(entry);
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void AddDownloadPdf(LibraryBook libraryBook)
|
public void AddDownloadPdf(LibraryBook libraryBook)
|
||||||
=> AddDownloadPdf(new List<LibraryBook>() { libraryBook });
|
=> AddDownloadPdf(new List<LibraryBook>() { libraryBook });
|
||||||
|
|||||||
@ -169,6 +169,16 @@ namespace LibationUiBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T FirstOrDefault(Func<T, bool> predicate)
|
||||||
|
{
|
||||||
|
lock (lockObject)
|
||||||
|
{
|
||||||
|
return Current != null && predicate(Current) ? Current
|
||||||
|
: _completed.FirstOrDefault(predicate) is T completed ? completed
|
||||||
|
: _queued.FirstOrDefault(predicate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void MoveQueuePosition(T item, QueuePosition requestedPosition)
|
public void MoveQueuePosition(T item, QueuePosition requestedPosition)
|
||||||
{
|
{
|
||||||
lock (lockObject)
|
lock (lockObject)
|
||||||
|
|||||||
@ -82,7 +82,15 @@ namespace LibationWinForms.ProcessQueue
|
|||||||
}
|
}
|
||||||
|
|
||||||
private bool isBookInQueue(DataLayer.LibraryBook libraryBook)
|
private bool isBookInQueue(DataLayer.LibraryBook libraryBook)
|
||||||
=> Queue.Any(b => b?.LibraryBook?.Book?.AudibleProductId == libraryBook.Book.AudibleProductId);
|
{
|
||||||
|
var entry = Queue.FirstOrDefault(b => b?.LibraryBook?.Book?.AudibleProductId == libraryBook.Book.AudibleProductId);
|
||||||
|
if (entry == null)
|
||||||
|
return false;
|
||||||
|
else if (entry.Status is ProcessBookStatus.Cancelled or ProcessBookStatus.Failed)
|
||||||
|
return !Queue.RemoveCompleted(entry);
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void AddDownloadPdf(DataLayer.LibraryBook libraryBook)
|
public void AddDownloadPdf(DataLayer.LibraryBook libraryBook)
|
||||||
=> AddDownloadPdf(new List<DataLayer.LibraryBook>() { libraryBook });
|
=> AddDownloadPdf(new List<DataLayer.LibraryBook>() { libraryBook });
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user