private void Form1_Load(object sender, EventArgs e) { if (this.DesignMode) { return; } RestoreSizeAndLocation(); // load default/missing cover images. this will also initiate the background image downloader var format = System.Drawing.Imaging.ImageFormat.Jpeg; PictureStorage.SetDefaultImage(PictureSize._80x80, Properties.Resources.default_cover_80x80.ToBytes(format)); PictureStorage.SetDefaultImage(PictureSize._300x300, Properties.Resources.default_cover_300x300.ToBytes(format)); PictureStorage.SetDefaultImage(PictureSize._500x500, Properties.Resources.default_cover_500x500.ToBytes(format)); RefreshImportMenu(); setVisibleCount(null, 0); reloadGrid(); // also applies filter. ONLY call AFTER loading grid loadInitialQuickFilterState(); // init bottom counts backupsCountsLbl.Text = "[Calculating backed up book quantities]"; pdfsCountsLbl.Text = "[Calculating backed up PDFs]"; setBackupCounts(null, null); }
public Form1() { InitializeComponent(); // back up string formats beginBookBackupsToolStripMenuItem_format = beginBookBackupsToolStripMenuItem.Text; beginPdfBackupsToolStripMenuItem_format = beginPdfBackupsToolStripMenuItem.Text; if (this.DesignMode) { return; } // independent UI updates this.Load += (_, _) => this.RestoreSizeAndLocation(Configuration.Instance); this.Load += RefreshImportMenu; this.FormClosing += (_, _) => this.SaveSizeAndLocation(Configuration.Instance); LibraryCommands.LibrarySizeChanged += reloadGridAndUpdateBottomNumbers; LibraryCommands.BookUserDefinedItemCommitted += setBackupCounts; // used by async migrations to update ui when complete DataLayer.UserDefinedItem.Batch_ItemChanged += reloadGridAndUpdateBottomNumbers; var format = System.Drawing.Imaging.ImageFormat.Jpeg; PictureStorage.SetDefaultImage(PictureSize._80x80, Properties.Resources.default_cover_80x80.ToBytes(format)); PictureStorage.SetDefaultImage(PictureSize._300x300, Properties.Resources.default_cover_300x300.ToBytes(format)); PictureStorage.SetDefaultImage(PictureSize._500x500, Properties.Resources.default_cover_500x500.ToBytes(format)); }
public static ReadPictureResponse MapPictureStorageToReadPictureResponse(PictureStorage pictureStorage) { if (pictureStorage == null) { return(null); } return(new ReadPictureResponse { Id = pictureStorage.Id, Url = pictureStorage.Url, Caption = pictureStorage.Caption, CreatedAt = pictureStorage.CreatedAt, Votes = pictureStorage.Votes }); }
public async Task UpdateAsync(string pictureId, PictureStorage pictureStorage) { var pictureUpdateBuilder = Builders <PictureStorage> .Update; var updateValues = new List <UpdateDefinition <PictureStorage> >(); if (!string.IsNullOrEmpty(pictureStorage.Caption)) { updateValues.Add(pictureUpdateBuilder.Set(x => x.Caption, pictureStorage.Caption)); } updateValues.Add(pictureUpdateBuilder.Set(x => x.Votes, pictureStorage.Votes)); var pictureUpdate = pictureUpdateBuilder.Combine(updateValues); await _pictureCollection.UpdateOneAsync(x => x.Id == pictureId, pictureUpdate); }
public static Image GetImage(string pictureId, PictureSize size) { var def = new PictureDefinition(pictureId, size); if (!cache.ContainsKey(def)) { (var isDefault, var bytes) = PictureStorage.GetPicture(def); var image = ImageReader.ToImage(bytes); if (isDefault) { return(image); } cache[def] = image; } return(cache[def]); }
public override void Processable_Begin(object sender, LibraryBook libraryBook) { base.Processable_Begin(sender, libraryBook); GetCoverArtDelegate = () => PictureStorage.GetPictureSynchronously( new PictureDefinition( libraryBook.Book.PictureId, PictureSize._500x500)); //Set default values from library AudioDecodable_TitleDiscovered(sender, libraryBook.Book.Title); AudioDecodable_AuthorsDiscovered(sender, string.Join(", ", libraryBook.Book.Authors)); AudioDecodable_NarratorsDiscovered(sender, string.Join(", ", libraryBook.Book.NarratorNames)); AudioDecodable_CoverImageDiscovered(sender, PictureStorage.GetPicture( new PictureDefinition( libraryBook.Book.PictureId, PictureSize._80x80)).bytes); }
// 1st draft: lazily cribbed from GridEntry.ctor() private void initDetails() { this.Text = Book.Title; (_, var picture) = PictureStorage.GetPicture(new PictureDefinition(Book.PictureId, PictureSize._80x80)); this.coverPb.Image = Dinah.Core.Drawing.ImageReader.ToImage(picture); var t = @$ " Title: {Book.Title} Author(s): {Book.AuthorNames} Narrator(s): {Book.NarratorNames} Length: {(Book.LengthInMinutes == 0 ? " " : $" { Book.LengthInMinutes / 60 } hr { Book.LengthInMinutes % 60 } min ")} Category: {string.Join(" > ", Book.CategoriesNames)} Purchase Date: {_libraryBook.DateAdded.ToString(" d ")} ".Trim(); if (!string.IsNullOrWhiteSpace(Book.SeriesNames)) { t += $"\r\nSeries: {Book.SeriesNames}"; } var bookRating = Book.Rating?.ToStarString(); if (!string.IsNullOrWhiteSpace(bookRating)) { t += $"\r\nBook Rating:\r\n{bookRating}"; } var myRating = Book.UserDefinedItem.Rating?.ToStarString(); if (!string.IsNullOrWhiteSpace(myRating)) { t += $"\r\nMy Rating:\r\n{myRating}"; } this.detailsTb.Text = t; }
public async Task <string> CreateAsync(PictureStorage pictureStorage) { await _pictureCollection.InsertOneAsync(pictureStorage); return(pictureStorage.Id); }