private async Task ScrapAsync(IScraper scraper)
        {
            await Task.Run(() =>
            {
                var progress = new Progress<double>(x =>
                {
                    DispatcherHelper.CheckBeginInvokeOnUI(() => this.ScrapProgress = x);
                });

                var tracks = scraper.Scrap(progress)
                    .Distinct(new TrackComparer());
                foreach (var track in tracks)
                {
                    DispatcherHelper.CheckBeginInvokeOnUI(() => this.ScrapedTracks.Add(track));
                }
            });
        }