private void SendCastToFacade(List <TraktPersonMovieCast> cast)
{
// clear facade
GUIControl.ClearControl(GetID, Facade.GetID);
if (cast == null)
{
GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral);
GUIWindowManager.ShowPreviousWindow();
return;
}
// filter movies
var filteredCast = FilterCastMovies(cast).Where(m => !string.IsNullOrEmpty(m.Movie.Title)).ToList();
// sort movies
filteredCast.Sort(new GUIListItemMovieSorter(TraktSettings.SortByCreditMovies.Field, TraktSettings.SortByCreditMovies.Direction));
int itemId = 0;
GUIMovieListItem item = null;
var movieImages = new List <GUITmdbImage>();
foreach (var credit in filteredCast)
{
// add image for download
var images = new GUITmdbImage {
MovieImages = new TmdbMovieImages {
Id = credit.Movie.Ids.Tmdb
}
};
movieImages.Add(images);
item = new GUIMovieListItem(credit.Movie.Title, (int)TraktGUIWindows.PersonCreditMovies);
item.Label2 = credit.Movie.Year == null ? "----" : credit.Movie.Year.ToString();
item.Movie = credit.Movie;
item.TVTag = credit;
item.Images = images;
item.ItemId = Int32.MaxValue - itemId;
item.IconImage = GUIImageHandler.GetDefaultPoster(false);
item.IconImageBig = GUIImageHandler.GetDefaultPoster();
item.ThumbnailImage = GUIImageHandler.GetDefaultPoster();
item.OnItemSelected += OnCastSelected;
Utils.SetDefaultIcons(item);
Facade.Add(item);
itemId++;
}
// Set Facade Layout
Facade.CurrentLayout = CurrentLayout;
GUIControl.FocusControl(GetID, Facade.GetID);
Facade.SelectIndex(PreviousSelectedIndex);
// set facade properties
GUIUtils.SetProperty("#itemcount", Facade.Count.ToString());
GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredCast.Count, filteredCast.Count > 1 ? Translation.Movies : Translation.Movie));
// Download movie images Async and set to facade
GUIMovieListItem.GetImages(movieImages);
}