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; } }
public void LoadDataFromRelease(Release release, ICollectionImageHandler imageHandler) { if (release.DiscCount != this.DatabaseRelease.DiscCount || release.Tracklist.Count != this.DatabaseRelease.Tracklist.Count) { Dialogs.Error("Tracklists do not match. Can not continue."); return; } this.DatabaseRelease.AdditionalFiles.Clear(); this.DatabaseRelease.AdditionalFiles.AddRange(release.AdditionalFiles); this.DatabaseRelease.Artists.Clear(); this.DatabaseRelease.Artists.AddRange(release.Artists.Select(ra => new ReleaseArtist() { Artist = this.CollectionManager.GetOrCreateArtist(ra.Artist.Name), JoinString = ra.JoinString })); this.DatabaseRelease.CatalogNumber = release.CatalogNumber; this.DatabaseRelease.Country = release.Country; //this.DatabaseRelease.DateAdded = release.DateAdded; //this.DatabaseRelease.DateModified = release.DateModified; //this.DatabaseRelease.DateAudioModified = release.DateAudioModified; this.DatabaseRelease.DiscogsReleaseId = release.DiscogsReleaseId; this.DatabaseRelease.DiscogsMasterId = release.DiscogsMasterId; this.DatabaseRelease.FlagMessage = release.FlagMessage; this.DatabaseRelease.Genre = release.Genre; this.DatabaseRelease.IsFlagged = release.IsFlagged; this.DatabaseRelease.JoinedAlbumArtists = release.JoinedAlbumArtists; this.DatabaseRelease.Label = release.Label; this.DatabaseRelease.Notes = release.Notes; this.DatabaseRelease.WikipediaPageName = release.WikipediaPageName; this.DatabaseRelease.OriginalReleaseDate = release.OriginalReleaseDate; this.DatabaseRelease.ReleaseDate = release.ReleaseDate; this.DatabaseRelease.Title = release.Title; this.additionalFilesEditor.Release = null; this.additionalFilesEditor.Release = this.DatabaseRelease; this.DatabaseRelease.Images.Clear(); this.imagesEditor.Release = null; this.imagesEditor.Release = this.DatabaseRelease; foreach (var image in release.Images) { var newImage = new MusicDatabase.Engine.Entities.Image() { Description = image.Description, Extension = image.Extension, IsMain = image.IsMain, MimeType = image.MimeType, Type = image.Type }; this.DatabaseRelease.Images.Add(newImage); this.imagesEditor.AddImage(newImage, imageHandler.LoadImage(image)); } for (int i = 0; i < release.Tracklist.Count; ++i) { this.DatabaseRelease.Tracklist[i].Artists.Clear(); this.DatabaseRelease.Tracklist[i].Artists.AddRange(release.Tracklist[i].Artists.Select(a => new TrackArtist() { Artist = this.CollectionManager.GetOrCreateArtist(a.Artist.Name), JoinString = a.JoinString })); this.DatabaseRelease.Tracklist[i].JoinedArtists = release.Tracklist[i].JoinedArtists; this.DatabaseRelease.Tracklist[i].Title = release.Tracklist[i].Title; } this.detailsEditor.Release = null; this.detailsEditor.Release = this.DatabaseRelease; this.RefreshAllDiscs(); }