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; } }
private void ImportImages(DiscogsRelease discogsRelease) { bool replaceImages = true; if (this.release.Images.Count > 0) { replaceImages = Dialogs.YesNoQuestion("Replace existing release images?"); } if (replaceImages) { foreach (Image image in this.release.Images.ToArray()) { this.imagesEditor.RemoveImage(image); } } WaitWindow waitWindow = new WaitWindow("Downloading images. Please wait."); Progress <double> progress = new Progress <double>(); waitWindow.ShowDialog(this.window, new Task(() => { this.DownloadImagesAsync(discogsRelease, progress); }), progress); }
private void DownloadImagesAsync(DiscogsRelease discogsRelease, IProgress <double> progress) { var images = discogsRelease.Images.OrderBy(i => i.Type == DiscogsImageType.Primary ? 0 : 1).ToArray(); for (int i = 0; i < images.Length; ++i) { this.AddImageFromDiscogsAsync(images[i]); progress.Report((double)(i + 1) / images.Length); } }
private void Worker() { Discogs3 discogs = new Discogs3(); Release[] releases = this.CollectionManager.Releases.Where(r => r.DiscogsReleaseId != 0 && r.DiscogsMasterId == 0).ToArray(); this.Dispatcher.BeginInvokeAction(delegate { this.progressBar.Maximum = releases.Length; this.textBox.Text += releases.Length + " releases to process." + Environment.NewLine; this.textBox.ScrollToEnd(); }); int processed = 0; foreach (var release in releases) { string releaseMessage; try { this.Dispatcher.BeginInvokeAction(delegate { this.textBox.Text += (processed + 1) + "/" + releases.Length + ": Requesting " + release.DiscogsReleaseId + Environment.NewLine; this.textBox.ScrollToEnd(); }); DiscogsNet.Model.Release discogsRelease = discogs.GetRelease(release.DiscogsReleaseId); //using (var transaction = this.CollectionManager.BeginTransaction()) //{ release.DiscogsMasterId = discogsRelease.MasterId; this.CollectionManager.Save(release); //transaction.Commit(); //} releaseMessage = (processed + 1) + "/" + releases.Length + ": Successful update"; } catch (Exception e) { releaseMessage = (processed + 1) + "/" + releases.Length + ": Error - " + e; } ++processed; this.Dispatcher.BeginInvokeAction(delegate { this.textBox.Text += releaseMessage + Environment.NewLine; this.textBox.ScrollToEnd(); this.progressBar.Value = processed; }); if (this.shouldCancel) { break; } } }
private void ImportImages(DiscogsRelease discogsRelease) { bool replaceImages = true; if (this.release.Images.Count > 0) { replaceImages = Dialogs.YesNoQuestion("Replace existing release images?"); } if (replaceImages) { foreach (Image image in this.release.Images.ToArray()) { this.imagesEditor.RemoveImage(image); } } WaitWindow waitWindow = new WaitWindow("Downloading images. Please wait."); Progress<double> progress = new Progress<double>(); waitWindow.ShowDialog(this.window, new Task(() => { this.DownloadImagesAsync(discogsRelease, progress); }), progress); }
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; } }
private void DownloadImagesAsync(DiscogsRelease discogsRelease, IProgress<double> progress) { var images = discogsRelease.Images.OrderBy(i => i.Type == DiscogsImageType.Primary ? 0 : 1).ToArray(); for (int i = 0; i < images.Length; ++i) { this.AddImageFromDiscogsAsync(images[i]); progress.Report((double)(i + 1) / images.Length); } }