public EbooksViewModel() { Refresh = new RelayCommand(async() => { CanRefresh = false; try { await EbookManager.RefreshEbooksAsync(); } finally { CanRefresh = true; } }); if (!IsInDesignModeStatic) { _ = Task.Run(async() => { await EbookManager.LoadEbooksAsync(); if (EbookManager.Ebooks.Count == 0) { await EbookManager.RefreshEbooksAsync(); } await UIThread.RunAsync(() => { CanRefresh = true; }); }); } }
public EbookViewModel(Ebook ebook) { _ebook = ebook; Title = ebook.Title; Isbn = ebook.Isbn; IsPinnable = !EbookTile.Exists(_ebook.Isbn); Download = new RelayCommand(async() => { IsDownloadable = false; IsDownloading = true; Messenger.Default.Register <DownloadStatusMessage>(this, _ebook.Isbn, msg => { DownloadStatus = $"{msg.Done} av {msg.Total} sidor nerladdade"; }); await EbookManager.DownloadEbookAsync(_ebook); IsDownloading = false; IsDownloaded = true; IsPinnable = await Task.Run(() => !EbookTile.Exists(_ebook.Isbn)); FrontPagePath = await PageStorage.GetPagePathAsync(_ebook, 1); _ = _watchForDirectoryRemoval(); }); Pin = new RelayCommand(async() => { IsPinnable = !(await EbookTile.RequestCreateAsync(_ebook)); }); _ = Task.Run(async() => { if (!await PageStorage.EbookExistsAsync(_ebook)) { if (NetworkInformation.GetInternetConnectionProfile() != null) { _ = UIThread.RunAsync(() => IsDownloadable = true); } } else { _ = UIThread.RunAsync(() => IsDownloaded = true); try { _ = UIThread.RunAsync(async() => FrontPagePath = await PageStorage.GetPagePathAsync(_ebook, 1)); } catch { } _ = _watchForDirectoryRemoval(); } }); }