using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Net; using System; using System.Windows.Media.Imaging; namespace MediaBrowser.UI.ViewModels { /// /// Class SpecialFeatureViewModel /// public class SpecialFeatureViewModel : BaseViewModel { /// /// Gets or sets the image download options. /// /// The image download options. public ImageOptions ImageDownloadOptions { get; set; } /// /// The _image width /// private double _imageWidth; /// /// Gets or sets the width of the image. /// /// The width of the image. public double ImageWidth { get { return _imageWidth; } set { _imageWidth = value; OnPropertyChanged("ImageWidth"); } } /// /// The _image height /// private double _imageHeight; /// /// Gets or sets the height of the image. /// /// The height of the image. public double ImageHeight { get { return _imageHeight; } set { _imageHeight = value; OnPropertyChanged("ImageHeight"); } } /// /// The _item /// private BaseItemDto _item; /// /// Gets or sets the item. /// /// The item. public BaseItemDto Item { get { return _item; } set { _item = value; OnPropertyChanged("Item"); OnItemChanged(); } } /// /// Gets the time string. /// /// The time string. public string MinutesString { get { var time = TimeSpan.FromTicks(Item.RunTimeTicks ?? 0); var minutes = Math.Round(time.TotalMinutes); if (minutes <= 1) { return "1 minute"; } return string.Format("{0} minutes", minutes); } } /// /// The _image /// private BitmapImage _image; /// /// Gets the image. /// /// The image. public BitmapImage Image { get { return _image; } set { _image = value; OnPropertyChanged("Image"); } } /// /// Called when [item changed]. /// private async void OnItemChanged() { var options = ImageDownloadOptions ?? new ImageOptions { }; options.ImageType = ImageType.Primary; try { Image = await App.Instance.GetRemoteBitmapAsync(App.Instance.ApiClient.GetImageUrl(Item, options)); } catch (HttpException) { } } } }