private void SendListItemsToFacade(IEnumerable<TraktListItem> listItems)
{
// clear facade
GUIControl.ClearControl(GetID, Facade.GetID);
if (listItems == null)
{
GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral);
GUIWindowManager.ShowPreviousWindow();
return;
}
CurrentListItems = listItems.ToList();
if (listItems.Count() == 0)
{
GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoListItemsFound);
GUIWindowManager.ShowPreviousWindow();
return;
}
int itemId = 1;
var listImages = new List<GUITmdbImage>();
// Add each list item
foreach (var listItem in listItems)
{
// add image for download
var images = GetTmdbImage(listItem);
listImages.Add(images);
string itemName = CurrentList.DisplayNumbers ? string.Format("{0}. {1}", itemId, GetListItemLabel(listItem)) : GetListItemLabel(listItem);
var item = new GUICustomListItem(itemName, (int)TraktGUIWindows.CustomListItems);
item.Label2 = GetListItemSecondLabel(listItem);
item.TVTag = listItem;
item.Type = (TraktItemType)Enum.Parse(typeof(TraktItemType), listItem.Type, true);
item.Movie = listItem.Movie;
item.Show = listItem.Show;
item.Episode = listItem.Episode;
item.Season = listItem.Season;
item.Person = listItem.Person;
item.Images = images;
item.IsPlayed = listItem.IsWatched();
item.ItemId = Int32.MaxValue - itemId;
item.IconImage = GUIImageHandler.GetDefaultPoster(false);
item.IconImageBig = GUIImageHandler.GetDefaultPoster();
item.ThumbnailImage = GUIImageHandler.GetDefaultPoster();
item.OnItemSelected += OnItemSelected;
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", listItems.Count().ToString());
GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", listItems.Count().ToString(), listItems.Count() > 1 ? Translation.Items : Translation.Item));
// Download images Async and set to facade
GUICustomListItem.GetImages(listImages);
}