private async void LoadStorages() { await BookInfoStorage.LoadAsync(); //await LicenseStorage.LoadAsync(); await LibraryStorage.Content.GetContentAsync(); //await HistoryStorage.Content.GetContentAsync(); await PathStorage.Content.GetContentAsync(); }
public async void Initialize(Books.IBookFixed value, Control target = null) { this.Loading = true; if (BookInfo != null) { SaveInfo(); } this.Title = ""; var pages = new ObservableCollection <PageViewModel>(); var option = OptionCache = target == null ? OptionCache : new Books.PageOptionsControl(target); for (uint i = 0; i < value.PageCount; i++) { uint page = i; pages.Add(new PageViewModel(new Books.VirtualPage(() => { var p = value.GetPage(page); p.Option = option; return(p); }))); } this._Reversed = false; this._PageSelected = 0; ID = value.ID; this.Pages = pages; BookInfo = await BookInfoStorage.GetBookInfoByIDOrCreateAsync(value.ID); var tempPageSelected = (bool)SettingStorage.GetValue("SaveLastReadPage") ? (int)(BookInfo?.GetLastReadPage()?.Page ?? 1):1; this.PageSelected = tempPageSelected == this.PagesCount ? 1 : tempPageSelected; this.Reversed = BookInfo?.PageReversed ?? false; OnPropertyChanged(nameof(Reversed)); this.AsBookShelfBook = null; this.Bookmarks = new ObservableCollection <BookmarkViewModel>(); { var rl = new Windows.ApplicationModel.Resources.ResourceLoader(); var bm = new BookmarkViewModel() { Page = 1, AutoGenerated = true, Title = rl.GetString("BookmarkTop/Title") }; this.Bookmarks.Add(bm); } foreach (var bm in BookInfo.Bookmarks) { this.Bookmarks.Add(new BookmarkViewModel(bm)); } { var rl = new Windows.ApplicationModel.Resources.ResourceLoader(); var bm = new BookmarkViewModel() { Page = this.PagesCount, AutoGenerated = true, Title = rl.GetString("BookmarkLast/Title") }; this.Bookmarks.Add(bm); } this.Loading = false; }
/// <summary> /// アプリケーションの実行が中断されたときに呼び出されます。 /// アプリケーションが終了されるか、メモリの内容がそのままで再開されるかに /// かかわらず、アプリケーションの状態が保存されます。 /// </summary> /// <param name="sender">中断要求の送信元。</param> /// <param name="e">中断要求の詳細。</param> private async void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); await BookInfoStorage.SaveAsync(); await LibraryStorage.Content.SaveAsync(); await LibraryStorage.RoamingBookmarks.SaveAsync(); //TODO: アプリケーションの状態を保存してバックグラウンドの動作があれば停止します deferral.Complete(); }
private async Task GetFromBookInfoStorageAsync(string ID) { var bookInfo = await BookInfoStorage.GetBookInfoByIDAsync(ID); if (bookInfo != null) { this.Reversed = bookInfo.PageReversed; this.ReadRate = (bookInfo.GetLastReadPage()?.Page ?? 0) / (double)BookSize; //Issue: asyncの関係でSetLastReadPage()の前に GetLastReadPage()が実行されることがあるようだ。 } else { this.Reversed = false; this.ReadRate = 0; } }
public BookmarkViewModel(BookInfoStorage.BookInfo.BookmarkItem item) { var rl = new Windows.ApplicationModel.Resources.ResourceLoader(); this.Page = (int)item.Page; this.Title = item.Title == "" || item.Title==null ? item.Type == BookInfoStorage.BookInfo.BookmarkItem.BookmarkItemType.UserDefined ? rl.GetString("BookmarkBasic/Title") : rl.GetString("BookmarkLastread/Title") : item.Title; this.AutoGenerated = item.Type == BookInfoStorage.BookInfo.BookmarkItem.BookmarkItemType.LastRead; }