public async Task BeginSearch() { try { if (!string.IsNullOrEmpty(SearchQuery.SearchText) || !string.IsNullOrEmpty(SearchQuery.ActorName) || SearchQuery.Batch != null || !string.IsNullOrEmpty(SearchQuery.Mood)) { EventAgg.PublishOnUIThread(new StartLoadingMessage("Searching for movies...")); MovieList = await OnlineDB.Search(SearchQuery); if (MovieList != null || MovieList.Count != 0) { EventAgg.PublishOnUIThread(new MovieListMessage(MovieList, true, SearchQuery.SearchText)); } } } catch { StatusMessage.Enqueue("Unknow error occured while searchig for movies!"); } finally { EventAgg.PublishOnUIThread(new StopLoadingMessage()); } }
/// <summary> /// Adds movies to the list that have been downloaded either from offline or online db /// </summary> public async void Handle(MovieListMessage message) { Movies.Clear(); await Task.Run(() => { foreach (Movie movie in message.Movielist) { if (!string.IsNullOrEmpty(movie.Poster_path)) { Movies movieEntity = ParseFromTmdb(movie); base.ImageCacher.ScanPoster(movieEntity); Movies.AddOnUIThread(new MovieCardViewModel(movieEntity, EventAgg)); } } }); EventAgg.PublishOnUIThread(new ResultsReadyMessage()); }
public void NavigateToNextPage() { EventAgg.PublishOnUIThread(new BrowseSearchResultsMessage(++_onlineDB.SearchQuery.PageNumber)); }