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