using System; using System.Runtime.Serialization; namespace MediaBrowser.Controller.Entities { public class UserItemData { private float? _Rating; /// /// Gets or sets the users 0-10 rating /// public float? Rating { get { return _Rating; } set { if (value.HasValue) { if (value.Value < 0 || value.Value > 10) { throw new InvalidOperationException("A 0-10 rating is required for UserItemData."); } } _Rating = value; } } public long PlaybackPositionTicks { get; set; } public int PlayCount { get; set; } public bool IsFavorite { get; set; } /// /// This is an interpreted property to indicate likes or dislikes /// This should never be serialized. /// [IgnoreDataMember] public bool? Likes { get { if (Rating != null) { return Rating >= 6.5; } return null; } set { if (value.HasValue) { Rating = value.Value ? 10 : 1; } else { Rating = null; } } } } }