public EfBook(EfBookDto efBookDto, EfBooksContext context, ObservableCollection <IBook> books) { _efBookDto = efBookDto; _context = context; _books = books; var bookmarks = _efBookDto.Bookmarks.Select(bookmarkDto => new EfBookmark(bookmarkDto, _context)); _bookmarks = new ObservableCollection <IBookmark>(bookmarks); Bookmarks = new ReadOnlyObservableCollection <IBookmark>(_bookmarks); }
public async Task MigrateAsync() { SqliteBook[] books = null; SqliteBookmark[] bookmarks = null; await Task.Factory.StartNew(() => { using (var connection = new SQLiteConnection(DbPath)) { books = connection.Table <SqliteBook>().ToArray(); bookmarks = connection.Table <SqliteBookmark>().ToArray(); } }); using (var context = new EfBooksContext()) { context.Books.AddRange(books.Select(book => new EfBookDto { BookPath = book.Path, LastOpenedPage = book.LastOpenedPage, LastOpeningTime = book.LastOpeningTime, PageCount = book.PageCount, ThumbnailPath = book.ThumbnailPath, Title = book.Title, Bookmarks = bookmarks .Where(bookmark => bookmark.BookId == book.Id) .Select(bookmark => new EfBookmarkDto { PageNumber = bookmark.PageNumber, Title = bookmark.Title }).ToList() })); await context.SaveChangesAsync(); } var dbFile = await StorageFile.GetFileFromPathAsync(DbPath); await dbFile.DeleteAsync(); }
public EfBookmark(EfBookmarkDto efBookmarkDto, EfBooksContext context) { _efBookmarkDto = efBookmarkDto; _context = context; }