public void InternetFinderTest_Test() { IWebUserSettings wsm = Substitute.For<IWebUserSettings>(); IWebQuery wq = Substitute.For<IWebQuery>(); IInternetProvider iip = Substitute.For<IInternetProvider>(); iip.GetIsNetworkAvailable().Returns(false); InternetProvider.InternetHelper = iip; InternetFinder ifi = new InternetFinder(wsm, wq); IInternetFinder iifif = ifi; iifif.MonitorEvents(); bool receivederror = false; var p = new WPFSynchroneProgress<InternetFailed>((e) => receivederror=true); ifi.Compute(CancellationToken.None,p); //iifif.ShouldRaise("OnInternetError"); receivederror.Should().BeTrue(); ifi.Result.Found.Should().BeEmpty(); }
public void Test() { using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(25)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); foreach (IGenre genreso in ms.AllGenres) { genreso.Albums.Should().BeEmpty(); foreach (IGenre genresm in ms.AllGenres) { int res = genreso.Compare(genresm); Console.WriteLine("{0} Compare to {1}: {2}", genreso, genresm, res); if (genreso == genresm) { Assert.That(res, Is.EqualTo(0)); } } } IGenre monde = ms.AllGenres.FirstOrDefault(g => g.Name == "Monde"); monde.Should().NotBeNull(); monde.SubGenres.Should().NotBeEmpty(); foreach (IGenre sub in monde.SubGenres) { sub.Father.Should().Be(monde); sub.Compare(monde).Should().NotBe(int.MaxValue); } Console.WriteLine("Importing Music Folder"); IDirectoryImporterBuilder imib = ms.GetImporterBuilder(MusicImportType.Directory) as IDirectoryImporterBuilder; Assert.That(imib, Is.Not.Null); imib.Directory = DirectoryIn; imib.DefaultAlbumMaturity = AlbumMaturity.Discover; Assert.That(imib.IsValid, Is.True); imi = imib.BuildImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); Assert.That(ms.AllAlbums.Count, Is.EqualTo(5)); Assert.That(ms.AllGenres.Count, Is.EqualTo(25)); Assert.That(ms.AllArtists.Count, Is.EqualTo(12)); AssertEnumerable(from a in ms.AllAlbums select a.Name, from a in OldAlbums[0] select a.Name, n => n); AssertEnumerable(from a in ms.AllAlbums select (a.Genre), from a in OldAlbums[0] select a.Genre, n => n); AssertEnumerable(from a in ms.AllAlbums select a.Year, from a in OldAlbums[0] select a.Year, n => n); AssertAlbums(ms, OldAlbums[0], AlbumDescriptorCompareMode.AlbumMD); AssertAlbums(ms, OldAlbums[0], AlbumDescriptorCompareMode.AlbumandTrackMD); Console.WriteLine("Import Successful 5 Albums"); } using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); Assert.That(ms.AllAlbums.Count, Is.EqualTo(5)); Assert.That(ms.AllGenres.Count, Is.EqualTo(25)); Assert.That(ms.AllArtists.Count, Is.EqualTo(12)); AssertEnumerable(from a in ms.AllAlbums select a.Name, from a in OldAlbums[0] select a.Name, n => n); AssertEnumerable(from a in ms.AllAlbums select (a.Genre), from a in OldAlbums[0] select a.Genre, n => n); AssertEnumerable(from a in ms.AllAlbums select a.Year, from a in OldAlbums[0] select a.Year, n => n); AssertAlbums(ms, OldAlbums[0], AlbumDescriptorCompareMode.AlbumandTrackMD); IAlbum res = ms.AllAlbums.FirstOrDefault(a => a.Name == OldAlbums[0][0].Name); Assert.That(res, Is.Not.Null); ITrack tr = res.Tracks[0]; Assert.That(tr, Is.Not.Null); Assert.That(tr.Rating, Is.EqualTo(0)); tr.Rating = 5; Assert.That(tr.Rating, Is.EqualTo(5)); Console.WriteLine("Albums restored"); } using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); Assert.That(ms.AllAlbums.Count, Is.EqualTo(5)); Assert.That(ms.AllGenres.Count, Is.EqualTo(25)); Assert.That(ms.AllArtists.Count, Is.EqualTo(12)); AssertAlbums(ms, OldAlbums[0], AlbumDescriptorCompareMode.AlbumandTrackMD); AlbumCollection ac = (ms as IInternalMusicSession).Albums; IEnumerable<MatchAlbum> res0 = ac.FindAlbums(OldAlbums[0][0]); Assert.That(res0.Any(), Is.True); MatchAlbum ma = res0.First(); Assert.That(ma, Is.Not.Null); Assert.That(ma.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma.Precision, Is.EqualTo(MatchPrecision.Exact)); IAlbum res = ms.AllAlbums.FirstOrDefault(a => a.Name == OldAlbums[0][0].Name); Assert.That(res, Is.EqualTo(ma.FindItem)); Assert.That(res, Is.Not.Null); ITrack tr = res.Tracks[0]; Assert.That(tr.Rating, Is.EqualTo(5)); IModifiableAlbum ima = res.GetModifiableAlbum(); ima.Artists.Clear(); ima.Artists.Add(ms.CreateArtist("C")); //ima.Author = "C"; ima.Name = "C"; Assert.That(res.Name, Is.Not.EqualTo("C")); Assert.That(res.Author, Is.Not.EqualTo("C")); ima.Commit(); Assert.That(res.Name, Is.EqualTo("C")); Assert.That(res.Author, Is.EqualTo("C")); res0 = ac.FindAlbums(OldAlbums[0][0]); Assert.That(res0.Any(), Is.False); res0 = ac.FindAlbums(OldAlbums[1][0]); Assert.That(res0.Any(), Is.True); ma = res0.First(); Assert.That(ma, Is.Not.Null); Assert.That(ma.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma.Precision, Is.EqualTo(MatchPrecision.Exact)); Assert.That(res, Is.EqualTo(ma.FindItem)); AssertAlbums(ms, OldAlbums[1], AlbumDescriptorCompareMode.AlbumandTrackMD); ms.AllAlbums.ShouldBeCoherentWithAlbums(OldAlbums[1]); Console.WriteLine("Albums restored"); } using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); AssertAlbums(ms, OldAlbums[1], AlbumDescriptorCompareMode.AlbumandTrackMD); Assert.That(ms.AllAlbums.Count, Is.EqualTo(5)); Assert.That(ms.AllGenres.Count, Is.EqualTo(25)); Assert.That(ms.AllArtists.Count, Is.EqualTo(10)); AlbumCollection ac = (ms as IInternalMusicSession).Albums; IEnumerable<MatchAlbum> res0 = ac.FindAlbums(OldAlbums[0][1]); Assert.That(res0.Any(), Is.True); MatchAlbum ma = res0.First(); Assert.That(ma, Is.Not.Null); Assert.That(ma.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma.Precision, Is.EqualTo(MatchPrecision.Exact)); res0 = ac.FindAlbums(OldAlbums[1][0]); Assert.That(res0.Any(), Is.True); MatchAlbum ma2 = res0.First(); Assert.That(ma2, Is.Not.Null); Assert.That(ma2.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma2.Precision, Is.EqualTo(MatchPrecision.Exact)); Assert.That(ma2.FindItem.Name, Is.EqualTo("C")); Assert.That(ma2.FindItem.Author, Is.EqualTo("C")); IAlbum album = ma2.FindItem; Assert.That(album.Tracks.Count, Is.EqualTo(1)); IModifiableAlbum ima = (ma.FindItem as IAlbum).GetModifiableAlbum(); //SmartEventListener sel = new SmartEventListener(); //sel.SetExpectation(new OtherAlbumConfirmationNeededEventArgs(album), a => a.Continue = true); //ima.Error += sel.Listener; bool called = false; WPFSynchroneProgress<ImportExportError> Prog = new WPFSynchroneProgress<ImportExportError> ( (ie) => { OtherAlbumConfirmationNeededEventArgs conf = ie as OtherAlbumConfirmationNeededEventArgs; conf.Continue = true; called = true; } ); ima.Artists.Clear(); ima.Artists.Add(ms.CreateArtist("C")); ima.Name = "C"; Assert.That(ma.FindItem.Name, Is.Not.EqualTo("C")); Assert.That(ma.FindItem.Author, Is.Not.EqualTo("C")); ima.Commit(Prog); called.Should().BeTrue(); Assert.That((ma.FindItem as IObjectState).State, Is.EqualTo(ObjectState.Removed)); Assert.That(ms.AllAlbums.Count, Is.EqualTo(4)); //Assert.That(sel.IsOk, Is.True); ma2 = res0.First(); Assert.That(ma2, Is.Not.Null); Assert.That(ma2.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma2.Precision, Is.EqualTo(MatchPrecision.Exact)); Assert.That(ma2.FindItem.Name, Is.EqualTo("C")); Assert.That(ma2.FindItem.Author, Is.EqualTo("C")); album = ma2.FindItem; Assert.That(album.Tracks.Count, Is.EqualTo(2)); AssertAlbums(ms, OldAlbums[2], AlbumDescriptorCompareMode.AlbumandTrackMD); ms.AllAlbums.ShouldBeCoherentWithAlbums(OldAlbums[2]); Console.WriteLine("Albums restored"); } string toberemovedlater; using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); AssertAlbums(ms, OldAlbums[2], AlbumDescriptorCompareMode.AlbumandTrackMD); AlbumCollection ac = (ms as IInternalMusicSession).Albums; IEnumerable<MatchAlbum> res0 = ac.FindAlbums(OldAlbums[2][1]); Assert.That(res0.Any(), Is.True); MatchAlbum ma2 = res0.First(); Assert.That(ma2, Is.Not.Null); Assert.That(ma2.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma2.Precision, Is.EqualTo(MatchPrecision.Exact)); toberemovedlater = ma2.FindItem.Tracks[0].Path; Assert.That(File.Exists(toberemovedlater), Is.True); _SK.Settings.CollectionFileSettings.DeleteRemovedFile = BasicBehaviour.No; IMusicRemover imr = ms.GetMusicRemover(); Assert.That(imr, Is.Not.Null); imr.AlbumtoRemove.Add(ma2.FindItem); imr.Comit(); Assert.That((ma2.FindItem as IObjectState).State, Is.EqualTo(ObjectState.Removed)); Assert.That(File.Exists(toberemovedlater), Is.True); AssertAlbums(ms, OldAlbums[3], AlbumDescriptorCompareMode.AlbumandTrackMD); Console.WriteLine("Reimport Files"); IDirectoryImporterBuilder imib = ms.GetImporterBuilder(MusicImportType.Directory) as IDirectoryImporterBuilder; Assert.That(imib, Is.Not.Null); imib.Directory = DirectoryIn; imib.DefaultAlbumMaturity = AlbumMaturity.Discover; Assert.That(imib.IsValid, Is.True); imi = imib.BuildImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); Console.WriteLine("check that files correctly re-imported"); AssertAlbums(ms, OldAlbums[2], AlbumDescriptorCompareMode.AlbumandTrackMD); Console.WriteLine("remove again"); ac = (ms as IInternalMusicSession).Albums; res0 = ac.FindAlbums(OldAlbums[2][1]); Assert.That(res0.Any(), Is.True); ma2 = res0.First(); Assert.That(ma2, Is.Not.Null); Assert.That(ma2.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma2.Precision, Is.EqualTo(MatchPrecision.Exact)); toberemovedlater = ma2.FindItem.Tracks[0].Path; Assert.That(File.Exists(toberemovedlater), Is.True); _SK.Settings.CollectionFileSettings.DeleteRemovedFile = BasicBehaviour.No; imr = ms.GetMusicRemover(); Assert.That(imr, Is.Not.Null); imr.AlbumtoRemove.Add(ma2.FindItem); imr.Comit(); Assert.That((ma2.FindItem as IObjectState).State, Is.EqualTo(ObjectState.Removed)); Assert.That(File.Exists(toberemovedlater), Is.True); AssertAlbums(ms, OldAlbums[3], AlbumDescriptorCompareMode.AlbumandTrackMD); } using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); AssertAlbums(ms, OldAlbums[3], AlbumDescriptorCompareMode.AlbumandTrackMD); AlbumCollection ac = (ms as IInternalMusicSession).Albums; IEnumerable<MatchAlbum> res0 = ac.FindAlbums(OldAlbums[3][1]); Assert.That(res0.Any(), Is.True); MatchAlbum ma2 = res0.First(); Assert.That(ma2, Is.Not.Null); Assert.That(ma2.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma2.Precision, Is.EqualTo(MatchPrecision.Exact)); string ipath = ma2.FindItem.Tracks[0].Path; Assert.That(File.Exists(ipath), Is.True); _SK.Settings.CollectionFileSettings.DeleteRemovedFile = BasicBehaviour.Yes; IMusicRemover imr = ms.GetMusicRemover(); Assert.That(imr, Is.Not.Null); imr.AlbumtoRemove.Add(ma2.FindItem); imr.Comit(); Assert.That((ma2.FindItem as IObjectState).State, Is.EqualTo(ObjectState.Removed)); Assert.That(File.Exists(ipath), Is.False); AssertAlbums(ms, OldAlbums[4], AlbumDescriptorCompareMode.AlbumandTrackMD); } using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); AssertAlbums(ms, OldAlbums[4], AlbumDescriptorCompareMode.AlbumandTrackMD); AlbumCollection ac = (ms as IInternalMusicSession).Albums; IEnumerable<MatchAlbum> res0 = ac.FindAlbums(OldAlbums[4][0]); Assert.That(res0.Any(), Is.True); MatchAlbum ma2 = res0.First(); Assert.That(ma2, Is.Not.Null); Assert.That(ma2.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma2.Precision, Is.EqualTo(MatchPrecision.Exact)); res0 = ac.FindAlbums(OldAlbums[4][1]); Assert.That(res0.Any(), Is.True); MatchAlbum ma3 = res0.First(); Assert.That(ma3, Is.Not.Null); Assert.That(ma3.Way, Is.EqualTo(FindWay.ByName)); Assert.That(ma3.Precision, Is.EqualTo(MatchPrecision.Exact)); Album al = ma3.FindItem; IModifiableAlbum ima = (ma2.FindItem as IAlbum).GetModifiableAlbum(); ima.MergeFromMetaData(OldAlbums[4][1], ms.Strategy.OnlyIfDummy); ima.Commit(); AssertAlbums(ms, OldAlbums[4], AlbumDescriptorCompareMode.AlbumandTrackMD); ima = (ma2.FindItem as IAlbum).GetModifiableAlbum(); ima.MergeFromMetaData(OldAlbums[4][1], ms.Strategy.Get(IndividualMergeStategy.Always, IndividualMergeStategy.Always, IndividualMergeStategy.Always)); bool called = false; WPFSynchroneProgress<ImportExportError> Prog = new WPFSynchroneProgress<ImportExportError> ( (ie) => { OtherAlbumConfirmationNeededEventArgs conf = ie as OtherAlbumConfirmationNeededEventArgs; conf.Continue = true; called = true; } ); //SmartEventListener sel = new SmartEventListener(); //sel.SetExpectation(new OtherAlbumConfirmationNeededEventArgs(al), a => a.Continue = true); //ima.Error += sel.Listener; ima.Commit(Prog); called.Should().BeTrue(); AssertAlbums(ms, OldAlbums[5], AlbumDescriptorCompareMode.AlbumandTrackMD); ms.AllAlbums.ShouldBeCoherentWithAlbums(OldAlbums[5]); } using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); AssertAlbums(ms, OldAlbums[5], AlbumDescriptorCompareMode.AlbumandTrackMD); _SK.Settings.CollectionFileSettings.DeleteRemovedFile = BasicBehaviour.No; IMusicRemover imr = ms.GetMusicRemover(); Assert.That(imr, Is.Not.Null); imr.AlbumtoRemove.AddCollection(ms.AllAlbums); imr.Comit(); Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); } File.Delete(toberemovedlater); using (IMusicSession ms = MusicSessionImpl.GetSession(_SK.Builder)) { Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllGenres.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Cheking Persistency"); IMusicImporter imi = ms.GetDBImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); Assert.That(ms.AllAlbums.Count, Is.EqualTo(0)); Assert.That(ms.AllArtists.Count, Is.EqualTo(0)); Console.WriteLine("Importing Music Folder"); IDirectoryImporterBuilder imib = ms.GetImporterBuilder(MusicImportType.Directory) as IDirectoryImporterBuilder; Assert.That(imib, Is.Not.Null); imib.Directory = DirectoryIn; imib.DefaultAlbumMaturity = AlbumMaturity.Discover; Assert.That(imib.IsValid, Is.True); imi = imib.BuildImporter(); Assert.That(imi, Is.Not.Null); imi.Load(); AssertAlbums(ms, OldAlbums[5], AlbumDescriptorCompareMode.AlbumandTrackMD); Console.WriteLine("Testing track remover"); ITrack wbrd = ms.AllTracks.Where(tr => tr.Name == "One To Grow On").FirstOrDefault(); Assert.That(wbrd, Is.Not.Null); IMusicRemover imr = ms.GetMusicRemover(); imr.IncludePhysicalRemove = false; imr.TrackRemove.Add(wbrd); Assert.That(imr.TrackRemove.Count, Is.EqualTo(1)); imr.Comit(); Assert.That(wbrd.State, Is.EqualTo(ObjectState.Removed)); string mp = wbrd.Path; Assert.That(File.Exists(mp), Is.True); AssertAlbums(ms, OldAlbums[6], AlbumDescriptorCompareMode.AlbumandTrackMD); Assert.That(ms.AllTracks.Count, Is.EqualTo(2)); Console.WriteLine("Testing re-import"); imib = ms.GetImporterBuilder(MusicImportType.Directory) as IDirectoryImporterBuilder; Assert.That(imib, Is.Not.Null); imib.Directory = DirectoryIn; imib.DefaultAlbumMaturity = AlbumMaturity.Discover; Assert.That(imib.IsValid, Is.True); imi = imib.BuildImporter(); Assert.That(imi, Is.Not.Null); Action<ImportExportError> Continue = (e) => { OtherAlbumsConfirmationNeededEventArgs oa = e as OtherAlbumsConfirmationNeededEventArgs; if (oa != null) oa.Continue = true; }; WPFSynchroneousImportProgess ip = new WPFSynchroneousImportProgess(Continue, null); //imi.Error += ImportError; imi.Load(ip); //imi.Error -= ImportError; AssertAlbums(ms, OldAlbums[5], AlbumDescriptorCompareMode.AlbumandTrackMD); wbrd = ms.AllTracks.Where(tr => tr.Name == "One To Grow On").FirstOrDefault(); Assert.That(wbrd, Is.Not.Null); Track twbrd = wbrd as Track; string newDir = TempDirectoryIn; //Path.Combine(_SK.InPath, MYIn, "TempDir"); //Directory.CreateDirectory(newDir); string oldpath = wbrd.Path; IInternalMusicSession mss = ms as IInternalMusicSession; using (IImportContext Context = mss.GetNewSessionContext()) { using (IMusicTransaction imut = Context.CreateTransaction()) { Context.AddForUpdate(twbrd); //IMaturityUserSettings imm = Context.MaturityUserSettings; bool OK = twbrd.ReRoot(newDir, Context); imut.Commit(); } } string newpath = wbrd.Path; AssertAlbums(ms, OldAlbums[5], AlbumDescriptorCompareMode.AlbumandTrackMD); Assert.That(File.Exists(oldpath),Is.False); Assert.That(newpath.StartsWith(newDir), Is.False); DirectoryInfo di = new DirectoryInfo(newDir); FileInfo[] fis=di.GetFiles(); Assert.That(fis, Is.Not.Null); Assert.That(fis.Length, Is.EqualTo(1)); FileInfo fis0 = fis[0]; Assert.That(fis0, Is.Not.Null); Assert.That(fis0.FullName.ToLower(), Is.EqualTo(newpath)); } }
public async Task FindAdditionalInfoFromiTunesAsync() { if ((ComputingInfoWeb) || (iTunesComputed)) return; this.ComputingInfoiTunes = true; var progresser = new WPFSynchroneProgress<ImportExportError>( (e) => { if (!_IsCancel) { this.ComputingInfoiTunes = false; this.Window.ShowMessage(e.What, e.WindowName, false); } }); IDiscInformationProvider wb = _Session.GetITunesCDIdentificator(); await wb.ComputeAsync(progresser); if (!_IsCancel) { this.ComputingInfoiTunes = false; if (wb.FoundCDInfo != null) { _CDInfos.Add(wb.FoundCDInfo); iTunesComputed = true; Option = wb.FoundCDInfo; } } }
private async Task DoEdit(IEnumerable<IMusicObject> res) { if (res == null) return; var mvb = EditorViewModelFactory.FromEntities(res, _IMusicSession); if (mvb == null) return; IWindow window = this.Window.CreateFromViewModel(mvb); if (window == null) return; window.ShowDialog(); var importer = mvb as IInformationEditor; if (importer == null) return; var imp = importer.GetCommiter(); if (imp == null) return; WPFSynchroneProgress<ImportExportError> progressor = new WPFSynchroneProgress<ImportExportError>(OnImportError); await imp.CommitAsync(progressor); }