public ProgressProcessor(ProgressBar progBarPart, ProgressBar progBarTrack, Label labelInfo) { _progBarPart = new ProgBar(progBarPart); _progBarTrack = new ProgBar(progBarTrack, true); _bookProgress = new BookProgress(labelInfo, _progBarTrack); _progBarTrack.Callback = _bookProgress.SetInfoLabel; }
public static BookWithProgress GetUserBookProgress(string userId, Guid bookId) { using (var db = new HonyomiContext()) { IndexedBook book = db.Books.Include(x => x.Files).Single(x => x.IndexedBookId == bookId); if (book == null) { return(null); } BookProgress bookp = db.BookProgresses.SingleOrDefault(x => x.BookId == bookId && x.UserId == userId); BookWithProgress result = new BookWithProgress { FileProgresses = book.Files.Select(x => GetUserFileProgress(userId, x.IndexedFileId)) .ToArray(), Guid = book.IndexedBookId, CurrentTrackGuid = bookp?.FileId ?? book.Files.First().IndexedFileId, Title = book.Title, Author = book.Author, ISBN = book.ISBN }; return(result); } }
/// <summary> /// Sets the current track for the parent book to this track /// Generates BookProgress if required /// </summary> public static void SetCurrentTrack(string userId, Guid trackId) { using (var db = new HonyomiContext()) { IndexedBook book = db.Files.Include(x => x.Book).SingleOrDefault(x => x.IndexedFileId == trackId)?.Book; if (book == null) { //can't update progress on a book the doesn't exist return; } BookProgress prog = db.BookProgresses.SingleOrDefault(x => x.BookId == book.IndexedBookId && x.UserId == userId); if (prog == null) { db.BookProgresses.Add(new BookProgress() { BookId = book.IndexedBookId, FileId = trackId, UserId = userId }); } else { prog.FileId = trackId; } db.SaveChanges(); } }
public static BookProgressDto ToDto(this BookProgress bookProgress) { return(new BookProgressDto { BookId = bookProgress.BookId, PagesCount = bookProgress.PagesCount }); }