Esempio n. 1
0
        private async Task Refresh()
        {
            DisplayComics();

            try
            {
                var cancelToken = pageCancelTokenSource.Token;

                // Update comics from internet after loading from database so UI is filled ASAP
                var updateComicTasks = new List <Task>(ComicLibrary.Count);
                foreach (var comic in ComicLibrary)
                {
                    updateComicTasks.Add(comicUpdater.UpdateComic(comic, cancelToken: cancelToken));
                }

                // Updating comics can all happen at once instead of sequentially for speed
                await Task.WhenAll(updateComicTasks);
            }
            catch (OperationCanceledException) { }

            DisplayComics();

            IsRefreshing = false;

            // TODO: Get comic updates in the background
        }
Esempio n. 2
0
        public static async Task PageIsNewIsTrueWhenUpdated(
            [ValueSource(nameof(EnumerateKnownComicTypes))] MockComic comic)
        {
            // Initial comic import
            ComicData savedComic = await comicUpdater.ImportComic(comic.State1.ArchiveUrl);

            // Switch selector to next stage
            pageLoader.StateSelector = c => c.State2;

            // Update comic now that selector has been switched
            IEnumerable <ComicPageData> pages = await comicUpdater.UpdateComic(savedComic);

            Assert.GreaterOrEqual(pages.Count(p => p.IsNew), 1);

            Assert.Fail();
        }