public static async void HandleCommand(string text) { string play = Helper.Localize("Play"); if (text.StartsWith(play)) { string keyword = text.Substring(play.Length); var result = await SearchHelper.Search(keyword); if (result.Result == null) { Helper.ShowNotification("NoResults"); return; } switch (result.SearchType) { case SearchType.Artists: Playlist artist = result.Result as Playlist; MediaHelper.ShuffleAndPlay(artist.Songs); Helper.ShowNotificationWithoutLocalization(Helper.LocalizeMessage("SearchResultArtist", artist.Name), 5000); break; case SearchType.Albums: AlbumView album = result.Result as AlbumView; MediaHelper.ShuffleAndPlay(album.Songs); Helper.ShowNotificationWithoutLocalization(Helper.LocalizeMessage("SearchResultAlbum", album.Name), 5000); break; case SearchType.Playlists: AlbumView playlist = result.Result as AlbumView; MediaHelper.ShuffleAndPlay(playlist.Songs); Helper.ShowNotificationWithoutLocalization(Helper.LocalizeMessage("SearchResultPlaylist", playlist.Name), 5000); break; case SearchType.Folders: GridFolderView folder = result.Result as GridFolderView; MediaHelper.ShuffleAndPlay(folder.Songs); Helper.ShowNotificationWithoutLocalization(Helper.LocalizeMessage("SearchResultFolder", folder.Name), 5000); break; case SearchType.Songs: Music music = result.Result as Music; MediaHelper.SetMusicAndPlay(music); Helper.ShowNotificationWithoutLocalization(Helper.LocalizeMessage("SearchResultMusic", music.Name), 5000); break; } } }
public static int EvaluateFolder(GridFolderView item, string keyword) { if (item == null) { return(0); } if (item.Name == keyword) { return(97); } if (item.Name.Contains(keyword)) { return(87); } return(0); }
public static async Task <SearchResult> Search(string keyword) { List <SearchResult> results = new List <SearchResult>(); Playlist artist = (await Task.Run(() => SearchArtists(MusicLibraryPage.AllSongs, keyword, SortBy.Artist)))?.FirstOrDefault(); results.Add(new SearchResult(SearchType.Artists, artist, EvaluateArtist(artist, keyword))); Music music = (await Task.Run(() => SearchSongs(MusicLibraryPage.AllSongs, keyword, SortBy.Artist)))?.FirstOrDefault(); results.Add(new SearchResult(SearchType.Artists, artist, EvaluateMusic(music, keyword))); AlbumView album = (await Task.Run(() => SearchAlbums(MusicLibraryPage.AllSongs, keyword, SortBy.Artist)))?.FirstOrDefault(); results.Add(new SearchResult(SearchType.Artists, album, EvaluateAlbum(album, keyword))); GridFolderView folder = (await Task.Run(() => SearchFolders(Settings.settings.Tree, keyword, SortBy.Artist)))?.FirstOrDefault(); results.Add(new SearchResult(SearchType.Folders, folder, EvaluateFolder(folder, keyword))); AlbumView playlist = (await Task.Run(() => SearchPlaylists(Settings.settings.Playlists, keyword, SortBy.Artist)))?.FirstOrDefault(); results.Add(new SearchResult(SearchType.Playlists, playlist, EvaluatePlaylist(playlist, keyword))); results.Sort((r1, r2) => r2.Score - r1.Score); return(results[0]); }