public void CancelDownload(Book book)
        {
            try
            {
                if (BookUpdater.CurrentBook.ID == book.ID)
                {
                    book.Cancelled = true;

                    BookUpdater.CancelDownloadOperations();

                    // If internet connection is available, remove the current book and start download next one
                    if (Reachability.IsDefaultNetworkAvailable())
                    {
                        GetBookViewAndUpdateCollectionView(book.ID);
                    }
                    else
                    {
                        // Cancel current downloads if it's in progress
                        CancelAllDownloads();
                    }
                }
                else
                {
                    BookUpdater.RemoveBookFromDevice(book);
                    BookUpdater.Dequeue(book.ID);
                }

                RefreshTable();
            }
            catch (Exception ex)
            {
                Logger.WriteLineDebugging("BookshelfViewController - CancelDownload: {0}", ex.ToString());
            }
        }
        public void CancelAllDownloads()
        {
            if (BookUpdater.CurrentBook != null)
            {
                BookUpdater.CurrentBook.Cancelled = true;
            }

            BookUpdater.CancelDownloadOperations();

            RemovePendingBooks();

            BookUpdater.DownloadFinished();

            RefreshTable();
        }