예제 #1
0
        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();
            //}
        }
예제 #2
0
        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;
            }
        }