public void UpdateReleasesThumbnails(IProgress <double> progress) { int count = this.collectionManager.Releases.Count(); int processed = 0; //using (var transaction = this.collectionManager.BeginTransaction()) //{ foreach (Release release in this.collectionManager.Releases) { ThumbnailGenerator.UpdateReleaseThumbnail(release, this.collectionManager.ImageHandler); this.collectionManager.Save(release); ++processed; progress.Report((double)processed / count); } //transaction.Commit(); //} }
public static void UpdateReleaseThumbnail(Release release, ICollectionImageHandler imageHandler) { Image mainImage = release.Images.FirstOrDefault(i => i.IsMain); if (mainImage != null) { byte[] thumbnail = null; string thumbExtension = null, thumbMimeType = null; thumbnail = ThumbnailGenerator.CreateThumbnail( imageHandler.LoadImage(mainImage), MusicDatabase.Engine.Entities.Release.ThumbnailSize, out thumbExtension, out thumbMimeType); release.Thumbnail = thumbnail; Assert.IsTrue(thumbMimeType == MusicDatabase.Engine.Entities.Release.ThumbnailMimeType); } else { release.Thumbnail = null; } }