private void StreamManagerOnError(object sender, EventArgs eventArgs) { _torrentStreamService.Stop(); _dispatcherUtility.Run(() => { CurtainPrompt.ShowError("Problem starting playback."); _navigationService.GoBack(); }); }
private void BootStrapper_BackRequested(object sender, HandledEventArgs e) { e.Handled = Handled; foreach (IAction item in Actions) { _dispatcher.Run(() => item.Execute(sender, null)); } }
public void AddTrack(Track track) { var existing = Find(track) != null; if (existing) { throw new LibraryException("Track already saved."); } track.Id = 0; _sqLiteConnection.Insert(track); _dispatcherUtility.Run(() => { CreateRelatedObjects(track); track.IsFromLibrary = true; Tracks.Add(track); }); }
private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs arg) { _dispatcherUtility.Run(() => { object item; var removed = false; switch (arg.Action) { case NotifyCollectionChangedAction.Reset: ResetSortedCollections(); return; case NotifyCollectionChangedAction.Add: item = arg.NewItems[0]; break; default: item = arg.OldItems[0]; removed = true; break; } if (item is Track) { var song = item as Track; if (removed) { TracksByDateAdded.Remove(song); } else { TracksByDateAdded.Insert(0, song); } UpdateSortedCollection(song, removed, song.Title, () => TracksByTitle); UpdateSortedCollection(song, removed, song.DisplayArtist, () => TracksByArtist); UpdateSortedCollection(song, removed, song.AlbumTitle, () => TracksByAlbum); } else if (item is Artist) { var artist = item as Artist; if (removed) { artist.Tracks.CollectionChanged -= TracksOnCollectionChanged; } else { artist.Tracks.CollectionChanged += TracksOnCollectionChanged; } if (!artist.IsSecondaryArtist || removed) { UpdateSortedCollection(artist, removed, artist.Name, () => ArtistsByName); } } else if (item is Album) { var album = item as Album; if (removed) { AlbumsByDateAdded.Remove(album); } else { AlbumsByDateAdded.Insert(0, album); } UpdateSortedCollection(album, removed, album.Title, () => AlbumsByTitle); UpdateSortedCollection(album, removed, album.Artist.Name, () => AlbumsByArtist); } }); }