private void SendShowSeasonsToFacade(IEnumerable <TraktShowSeason> seasons)
{
// clear facade
GUIControl.ClearControl(GetID, Facade.GetID);
if (seasons == null || seasons.Count() == 0)
{
GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSeasonsForShow);
GUIWindowManager.ShowPreviousWindow();
return;
}
// sort ascending or descending order
if (TraktSettings.SortSeasonsAscending)
{
seasons = seasons.OrderBy(s => s.Season);
}
int itemId = 0;
var seasonImages = new List <TraktImage>();
foreach (var season in seasons)
{
// add image for download
var images = new TraktImage {
SeasonImages = season.Images, ShowImages = Show.Images
};
seasonImages.Add(images);
string itemLabel = season.Season == 0 ? Translation.Specials : string.Format("{0} {1}", Translation.Season, season.Season.ToString());
var item = new GUISeasonListItem(itemLabel, (int)TraktGUIWindows.ShowSeasons);
item.Label2 = string.Format("{0} {1}", season.EpisodeCount, Translation.Episodes);
item.TVTag = season;
item.Images = images;
item.ItemId = Int32.MaxValue - itemId;
item.IconImage = GUIImageHandler.GetDefaultPoster(false);
item.IconImageBig = GUIImageHandler.GetDefaultPoster();
item.ThumbnailImage = GUIImageHandler.GetDefaultPoster();
item.OnItemSelected += OnSeasonSelected;
Utils.SetDefaultIcons(item);
Facade.Add(item);
itemId++;
}
// Set Facade Layout
Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout));
GUIControl.FocusControl(GetID, Facade.GetID);
Facade.SelectIndex(PreviousSelectedIndex);
// set facade properties
GUIUtils.SetProperty("#itemcount", seasons.Count().ToString());
GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", seasons.Count().ToString(), seasons.Count() > 1 ? Translation.Seasons : Translation.Season));
// Download show images Async and set to facade
GUISeasonListItem.GetImages(seasonImages);
}