private void SendCastToFacade(List <TraktPersonShowCast> cast)
{
// clear facade
GUIControl.ClearControl(GetID, Facade.GetID);
if (cast == null)
{
GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral);
GUIWindowManager.ShowPreviousWindow();
return;
}
// filter Shows
var filteredCast = FilterCastShows(cast).Where(m => !string.IsNullOrEmpty(m.Show.Title)).ToList();
// sort Shows
filteredCast.Sort(new GUIListItemShowSorter(TraktSettings.SortByCreditShows.Field, TraktSettings.SortByCreditShows.Direction));
int itemId = 0;
GUIShowListItem item = null;
var ShowImages = new List <GUITmdbImage>();
foreach (var credit in filteredCast)
{
// add image for download
var images = new GUITmdbImage {
ShowImages = new TmdbShowImages {
Id = credit.Show.Ids.Tmdb
}
};
ShowImages.Add(images);
item = new GUIShowListItem(credit.Show.Title, (int)TraktGUIWindows.PersonCreditShows);
item.Label2 = credit.Show.Year == null ? "----" : credit.Show.Year.ToString();
item.Show = credit.Show;
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.Shows : Translation.Show));
// Download Show images Async and set to facade
GUIShowListItem.GetImages(ShowImages);
}