private void SendSearchResultsToFacade(IEnumerable<TraktEpisodeSummaryEx> episodes)
{
// clear facade
GUIControl.ClearControl(GetID, Facade.GetID);
if (episodes == null)
{
GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral);
GUIWindowManager.ShowPreviousWindow();
Episodes = null;
return;
}
if (episodes.Count() == 0)
{
GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound);
GUIWindowManager.ShowPreviousWindow();
Episodes = null;
return;
}
int itemId = 0;
var showImages = new List<GUITmdbImage>();
// Add each show
foreach (var episodeSummary in episodes)
{
// add images for download
var images = new GUITmdbImage
{
EpisodeImages = new TmdbEpisodeImages
{
Id = episodeSummary.Show.Ids.Tmdb,
Season = episodeSummary.Episode.Season,
Episode = episodeSummary.Episode.Number,
AirDate = episodeSummary.Episode.FirstAired == null ? null : episodeSummary.Episode.FirstAired.FromISO8601().ToLocalTime().ToShortDateString()
}
};
showImages.Add(images);
var item = new GUIEpisodeListItem(episodeSummary.ToString(), (int)TraktGUIWindows.SearchEpisodes);
item.Label2 = episodeSummary.Show.Year.ToString();
item.TVTag = episodeSummary;
item.Episode = episodeSummary.Episode;
item.Show = episodeSummary.Show;
item.Images = images;
item.IsPlayed = episodeSummary.Episode.IsWatched(episodeSummary.Show);
item.ItemId = Int32.MaxValue - itemId;
item.IconImage = "defaultTraktEpisode.png";
item.IconImageBig = "defaultTraktEpisodeBig.png";
item.ThumbnailImage = "defaultTraktEpisodeBig.png";
item.OnItemSelected += OnEpisodeSelected;
Utils.SetDefaultIcons(item);
Facade.Add(item);
itemId++;
}
// Set Facade Layout
Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout));
GUIControl.FocusControl(GetID, Facade.GetID);
if (SearchTermChanged) PreviousSelectedIndex = 0;
Facade.SelectIndex(PreviousSelectedIndex);
// set facade properties
GUIUtils.SetProperty("#itemcount", episodes.Count().ToString());
GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", episodes.Count().ToString(), episodes.Count() > 1 ? Translation.Episodes : Translation.Episode));
// Download images Async and set to facade
GUIEpisodeListItem.GetImages(showImages);
}