Пример #1
0
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
 public EfBookmark(EfBookmarkDto efBookmarkDto, EfBooksContext context)
 {
     _efBookmarkDto = efBookmarkDto;
     _context       = context;
 }