private void ImportAlbumArtist(DiscogsRelease discogsRelease, DiscogsSelectImportOptions importOptionsWindow) { if (DiscogsUtility.IsVariousArtists(discogsRelease.Aggregate.JoinedArtistsFixed)) { this.release.Artists.Clear(); this.release.Artists.Add(new ReleaseArtist() { Artist = this.collectionManager.GetOrCreateArtist(DiscogsUtility.StandardVariousArtistsName) }); this.release.JoinedAlbumArtists = DiscogsUtility.StandardVariousArtistsName; } else { this.release.Artists.Clear(); foreach (var discogsArtist in discogsRelease.Artists) { this.release.Artists.Add(new ReleaseArtist() { Artist = this.collectionManager.GetOrCreateArtist(importOptionsWindow.FixNames ? discogsArtist.Aggregate.NameVariationFixed : discogsArtist.Aggregate.NameVariationWithFallback), JoinString = discogsArtist.Join }); } this.release.JoinedAlbumArtists = importOptionsWindow.FixNames ? discogsRelease.Aggregate.JoinedArtistsFixed : discogsRelease.Aggregate.JoinedArtists; } }
public void Merge() { string discogsReleaseString = release.DiscogsReleaseId == 0 ? null : release.DiscogsReleaseId.ToString(); DiscogsSelectReleaseWindow selectReleaseWindow = new DiscogsSelectReleaseWindow(discogsReleaseString); if (selectReleaseWindow.ShowDialog(this.window) == true && selectReleaseWindow.Release != null) { var discogsRelease = selectReleaseWindow.Release; DiscogsSelectImportOptions importOptionsWindow = new DiscogsSelectImportOptions(); if (importOptionsWindow.ShowDialog(this.window) == true) { if (importOptionsWindow.ImportTrackData) { if (!ImportTrackData(selectReleaseWindow)) { return; } } if (importOptionsWindow.ImportAlbumArtist) { ImportAlbumArtist(discogsRelease, importOptionsWindow); } if (importOptionsWindow.ImportImages) { ImportImages(discogsRelease); } if (importOptionsWindow.ImportReleaseDate) { this.release.ReleaseDate = ReleaseDate.Parse(discogsRelease.ReleaseDate); } if (importOptionsWindow.ImportTitle) { this.release.Title = discogsRelease.Title; } if (importOptionsWindow.ImportCatalogInformation) { this.release.Country = discogsRelease.Country; this.release.Genre = discogsRelease.Genres.FirstOrDefault(); if (discogsRelease.Labels.Length >= 1) { var discogsLabel = discogsRelease.Labels[0]; if (discogsRelease.Labels.Length > 1) { DiscogsSelectLabelWindow selectLabelWindow = new DiscogsSelectLabelWindow(discogsRelease); selectLabelWindow.Owner = this.window; if (selectLabelWindow.ShowDialog() != true) { return; } discogsLabel = selectLabelWindow.SelectedLabel; } this.release.Label = discogsLabel.Aggregate.NameFixed; this.release.CatalogNumber = discogsLabel.CatalogNumber; } } if (importOptionsWindow.ImportNotes) { this.release.Notes = discogsRelease.Notes; } this.release.DiscogsReleaseId = discogsRelease.Id; this.release.DiscogsMasterId = discogsRelease.MasterId; } } }