From 17c1fd576057bdd2d6aea517d733fe8af6e6b2ba Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Sat, 23 Feb 2013 10:58:08 -0500 Subject: moved ui to it's own repo --- MediaBrowser.UI/ViewModels/DtoBaseItemViewModel.cs | 183 --------------------- 1 file changed, 183 deletions(-) delete mode 100644 MediaBrowser.UI/ViewModels/DtoBaseItemViewModel.cs (limited to 'MediaBrowser.UI/ViewModels/DtoBaseItemViewModel.cs') diff --git a/MediaBrowser.UI/ViewModels/DtoBaseItemViewModel.cs b/MediaBrowser.UI/ViewModels/DtoBaseItemViewModel.cs deleted file mode 100644 index f8194e04b..000000000 --- a/MediaBrowser.UI/ViewModels/DtoBaseItemViewModel.cs +++ /dev/null @@ -1,183 +0,0 @@ -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Entities; -using MediaBrowser.UI.Pages; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; - -namespace MediaBrowser.UI.ViewModels -{ - /// - /// Class DtoBaseItemViewModel - /// - public class DtoBaseItemViewModel : BaseViewModel - { - /// - /// The _average primary image aspect ratio - /// - private double _averagePrimaryImageAspectRatio; - /// - /// Gets the aspect ratio that should be used if displaying the primary image - /// - /// The average primary image aspect ratio. - public double AveragePrimaryImageAspectRatio - { - get { return _averagePrimaryImageAspectRatio; } - - set - { - _averagePrimaryImageAspectRatio = value; - OnPropertyChanged("AveragePrimaryImageAspectRatio"); - } - } - - /// - /// The _parent display preferences - /// - private DisplayPreferences _parentDisplayPreferences; - /// - /// Gets of sets the current DisplayPreferences - /// - /// The parent display preferences. - public DisplayPreferences ParentDisplayPreferences - { - get { return _parentDisplayPreferences; } - - set - { - _parentDisplayPreferences = value; - NotifyDisplayPreferencesChanged(); - } - } - - /// - /// The _item - /// - private BaseItemDto _item; - /// - /// Gets or sets the item. - /// - /// The item. - public BaseItemDto Item - { - get { return _item; } - - set - { - _item = value; - OnPropertyChanged("Item"); - } - } - - /// - /// Notifies the display preferences changed. - /// - public void NotifyDisplayPreferencesChanged() - { - OnPropertyChanged("DisplayPreferences"); - } - - /// - /// Gets an image url that can be used to download an image from the api - /// - /// The type of image requested - /// The image index, if there are multiple. Currently only applies to backdrops. Supply null or 0 for first backdrop. - /// System.String. - public string GetImageUrl(ImageType imageType, int? imageIndex = null) - { - var height = ParentDisplayPreferences.PrimaryImageHeight; - - var averageAspectRatio = BaseFolderPage.GetAspectRatio(imageType, AveragePrimaryImageAspectRatio); - - var width = height * averageAspectRatio; - - var imageOptions = new ImageOptions - { - ImageType = imageType, - ImageIndex = imageIndex, - Height = height - }; - - if (imageType == ImageType.Primary) - { - var currentAspectRatio = imageType == ImageType.Primary ? Item.PrimaryImageAspectRatio ?? width / height : width / height; - - // Preserve the exact AR if it deviates from the average significantly - var preserveExactAspectRatio = Math.Abs(currentAspectRatio - averageAspectRatio) > .10; - - if (!preserveExactAspectRatio) - { - imageOptions.Width = Convert.ToInt32(width); - } - } - - return App.Instance.ApiClient.GetImageUrl(Item, imageOptions); - } - - /// - /// Gets the average primary image aspect ratio. - /// - /// The items. - /// System.Double. - /// items - public static double GetAveragePrimaryImageAspectRatio(IEnumerable items) - { - if (items == null) - { - throw new ArgumentNullException("items"); - } - - double total = 0; - var count = 0; - - foreach (var child in items) - { - var ratio = child.PrimaryImageAspectRatio ?? 0; - - if (ratio.Equals(0)) - { - continue; - } - - total += ratio; - count++; - } - - return count == 0 ? 1 : total / count; - } - - /// - /// Gets the observable items. - /// - /// The items. - /// ObservableCollection{DtoBaseItemViewModel}. - public static ObservableCollection GetObservableItems(BaseItemDto[] items) - { - return GetObservableItems(items, GetAveragePrimaryImageAspectRatio(items)); - } - - /// - /// Gets the observable items. - /// - /// The items. - /// The average primary image aspect ratio. - /// The parent display preferences. - /// ObservableCollection{DtoBaseItemViewModel}. - /// items - public static ObservableCollection GetObservableItems(IEnumerable items, double averagePrimaryImageAspectRatio, DisplayPreferences parentDisplayPreferences = null) - { - if (items == null) - { - throw new ArgumentNullException("items"); - } - - return new ObservableCollection(items.Select(i => new DtoBaseItemViewModel - { - Item = i, - ParentDisplayPreferences = parentDisplayPreferences, - AveragePrimaryImageAspectRatio = averagePrimaryImageAspectRatio - })); - } - } -} -- cgit v1.2.3