public async void LoadData(String searchTerm) { if (!this.Loading) { App.TrackEvent("Search", "Searching for " + searchTerm); this.Loading = true; this.progressBar.Visibility = System.Windows.Visibility.Visible; App.SearchViewModel.clearResult(); TraktShow[] shows = await showController.searchForShows(searchTerm); TraktMovie[] movies = await movieController.searchForMovies(searchTerm); List <Object> mergedList = new List <object>(); Boolean isShow = shows.Length > 0 ? true : false; Int16 showLocation = 0; Int16 movieLocation = 0; for (int i = 0; i < shows.Length + movies.Length; i++) { if (isShow) { if (showLocation < shows.Length) { mergedList.Add(shows[showLocation++]); } isShow = false; } else { if (movieLocation < movies.Length) { mergedList.Add(movies[movieLocation++]); } isShow = true; } } foreach (Object result in mergedList) { if (result.GetType() == typeof(TraktShow)) { TraktShow show = (TraktShow)result; App.SearchViewModel.ResultItems.Add(new ListItemViewModel() { Name = show.Title, ImageSource = show.Images.Poster, Imdb = show.imdb_id, Tvdb = show.tvdb_id, SubItemText = show.year.ToString(), Genres = show.Genres, Type = "show" }); } else { TraktMovie movie = (TraktMovie)result; App.SearchViewModel.ResultItems.Add(new ListItemViewModel() { Name = movie.Title, ImageSource = movie.Images.Poster, Imdb = movie.imdb_id, SubItemText = movie.year.ToString(), Genres = movie.Genres, Type = "movie" }); } } App.SearchViewModel.NotifyPropertyChanged("ResultItems"); this.progressBar.Visibility = System.Windows.Visibility.Collapsed; this.Loading = false; } }