ItemOverview.xaml.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using MediaBrowser.Model.Dto;
  2. using System;
  3. using System.Linq;
  4. using System.Windows;
  5. namespace MediaBrowser.Plugins.DefaultTheme.Controls.Details
  6. {
  7. /// <summary>
  8. /// Interaction logic for ItemOverview.xaml
  9. /// </summary>
  10. public partial class ItemOverview : BaseDetailsControl
  11. {
  12. /// <summary>
  13. /// Initializes a new instance of the <see cref="ItemOverview" /> class.
  14. /// </summary>
  15. public ItemOverview()
  16. : base()
  17. {
  18. InitializeComponent();
  19. }
  20. /// <summary>
  21. /// Called when [item changed].
  22. /// </summary>
  23. protected override void OnItemChanged()
  24. {
  25. var directors = (Item.People ?? new BaseItemPerson[] { }).Where(p => string.Equals(p.Type, "director", StringComparison.OrdinalIgnoreCase)).ToList();
  26. if (directors.Count > 0)
  27. {
  28. PnlDirectors.Visibility = Visibility.Visible;
  29. Directors.Text = string.Join(" / ", directors.Take(3).Select(d => d.Name).ToArray());
  30. DirectorLabel.Text = directors.Count > 1 ? "directors" : "director";
  31. }
  32. else
  33. {
  34. PnlDirectors.Visibility = Visibility.Collapsed;
  35. }
  36. if (Item.Genres != null && Item.Genres.Count > 0)
  37. {
  38. PnlGenres.Visibility = Visibility.Visible;
  39. Genres.Text = string.Join(" / ", Item.Genres.Take(4).ToArray());
  40. GenreLabel.Text = Item.Genres.Count > 1 ? "genres" : "genre";
  41. }
  42. else
  43. {
  44. PnlGenres.Visibility = Visibility.Collapsed;
  45. }
  46. if (Item.Studios != null && Item.Studios.Count > 0)
  47. {
  48. PnlStudios.Visibility = Visibility.Visible;
  49. Studios.Text = string.Join(" / ", Item.Studios.Take(3).ToArray());
  50. StudiosLabel.Text = Item.Studios.Count > 1 ? "studios" : "studio";
  51. }
  52. else
  53. {
  54. PnlStudios.Visibility = Visibility.Collapsed;
  55. }
  56. if (Item.PremiereDate.HasValue)
  57. {
  58. PnlPremiereDate.Visibility = Visibility.Visible;
  59. PremiereDate.Text = Item.PremiereDate.Value.ToShortDateString();
  60. }
  61. else
  62. {
  63. PnlPremiereDate.Visibility = Visibility.Collapsed;
  64. }
  65. if (!string.IsNullOrEmpty(Item.Artist))
  66. {
  67. PnlArtist.Visibility = Visibility.Visible;
  68. Artist.Text = Item.Artist;
  69. }
  70. else
  71. {
  72. PnlArtist.Visibility = Visibility.Collapsed;
  73. }
  74. if (!string.IsNullOrEmpty(Item.Album))
  75. {
  76. PnlAlbum.Visibility = Visibility.Visible;
  77. Album.Text = Item.Artist;
  78. }
  79. else
  80. {
  81. PnlAlbum.Visibility = Visibility.Collapsed;
  82. }
  83. if (!string.IsNullOrEmpty(Item.AlbumArtist))
  84. {
  85. PnlAlbumArtist.Visibility = Visibility.Visible;
  86. AlbumArtist.Text = Item.Artist;
  87. }
  88. else
  89. {
  90. PnlAlbumArtist.Visibility = Visibility.Collapsed;
  91. }
  92. Overview.Text = Item.Overview;
  93. }
  94. }
  95. }