| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 | 
							- using MediaBrowser.Model.DTO;
 
- using MediaBrowser.Model.Entities;
 
- using MediaBrowser.Model.Net;
 
- using System;
 
- using System.Linq;
 
- using System.Windows.Media.Imaging;
 
- namespace MediaBrowser.UI.ViewModels
 
- {
 
-     /// <summary>
 
-     /// Class ChapterInfoDtoViewModel
 
-     /// </summary>
 
-     public class ChapterInfoDtoViewModel : BaseViewModel
 
-     {
 
-         /// <summary>
 
-         /// Gets or sets the image download options.
 
-         /// </summary>
 
-         /// <value>The image download options.</value>
 
-         public ImageOptions ImageDownloadOptions { get; set; }
 
-         /// <summary>
 
-         /// The _image width
 
-         /// </summary>
 
-         private double _imageWidth;
 
-         /// <summary>
 
-         /// Gets or sets the width of the image.
 
-         /// </summary>
 
-         /// <value>The width of the image.</value>
 
-         public double ImageWidth
 
-         {
 
-             get { return _imageWidth; }
 
-             set
 
-             {
 
-                 _imageWidth = value;
 
-                 OnPropertyChanged("ImageWidth");
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// The _image height
 
-         /// </summary>
 
-         private double _imageHeight;
 
-         /// <summary>
 
-         /// Gets or sets the height of the image.
 
-         /// </summary>
 
-         /// <value>The height of the image.</value>
 
-         public double ImageHeight
 
-         {
 
-             get { return _imageHeight; }
 
-             set
 
-             {
 
-                 _imageHeight = value;
 
-                 OnPropertyChanged("ImageHeight");
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// The _item
 
-         /// </summary>
 
-         private ChapterInfoDto _chapter;
 
-         /// <summary>
 
-         /// Gets or sets the item.
 
-         /// </summary>
 
-         /// <value>The item.</value>
 
-         public ChapterInfoDto Chapter
 
-         {
 
-             get { return _chapter; }
 
-             set
 
-             {
 
-                 _chapter = value;
 
-                 OnPropertyChanged("Chapter");
 
-                 OnPropertyChanged("TimeString");
 
-                 OnChapterChanged();
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// The _item
 
-         /// </summary>
 
-         private DtoBaseItem _item;
 
-         /// <summary>
 
-         /// Gets or sets the item.
 
-         /// </summary>
 
-         /// <value>The item.</value>
 
-         public DtoBaseItem Item
 
-         {
 
-             get { return _item; }
 
-             set
 
-             {
 
-                 _item = value;
 
-                 OnPropertyChanged("Item");
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Gets the time string.
 
-         /// </summary>
 
-         /// <value>The time string.</value>
 
-         public string TimeString
 
-         {
 
-             get
 
-             {
 
-                 var time = TimeSpan.FromTicks(Chapter.StartPositionTicks);
 
-                 return time.ToString(time.TotalHours < 1 ? "m':'ss" : "h':'mm':'ss");
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// The _image
 
-         /// </summary>
 
-         private BitmapImage _image;
 
-         /// <summary>
 
-         /// Gets the image.
 
-         /// </summary>
 
-         /// <value>The image.</value>
 
-         public BitmapImage Image
 
-         {
 
-             get { return _image; }
 
-             set
 
-             {
 
-                 _image = value;
 
-                 OnPropertyChanged("Image");
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Called when [item changed].
 
-         /// </summary>
 
-         private async void OnChapterChanged()
 
-         {
 
-             var options = ImageDownloadOptions ?? new ImageOptions { };
 
-             options.ImageType = ImageType.ChapterImage;
 
-             options.ImageIndex = Item.Chapters.IndexOf(Chapter);
 
-             try
 
-             {
 
-                 Image = await App.Instance.GetRemoteBitmapAsync(App.Instance.ApiClient.GetImageUrl(Item, options));
 
-             }
 
-             catch (HttpException)
 
-             {
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Gets the height of the chapter image.
 
-         /// </summary>
 
-         /// <param name="item">The item.</param>
 
-         /// <param name="height">The height.</param>
 
-         /// <param name="defaultWidth">The default width.</param>
 
-         /// <returns>System.Double.</returns>
 
-         public static double GetChapterImageWidth(DtoBaseItem item, double height, double defaultWidth)
 
-         {
 
-             var width = defaultWidth;
 
-             if (item.MediaStreams != null)
 
-             {
 
-                 var videoStream = item.MediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video);
 
-                 if (videoStream != null)
 
-                 {
 
-                     double streamHeight = videoStream.Height ?? 0;
 
-                     double streamWidth = videoStream.Width ?? 0;
 
-                     if (streamHeight > 0 && streamWidth > 0)
 
-                     {
 
-                         var aspectRatio = streamWidth / streamHeight;
 
-                         width = height * aspectRatio;
 
-                     }
 
-                 }
 
-             }
 
-             return width;
 
-         }
 
-     }
 
- }
 
 
  |