using MediaBrowser.Model.Dto; using System; using System.Collections.Generic; using System.Linq; namespace MediaBrowser.Controller.Entities { /// /// Marker interface /// public interface IItemByName { List UserItemCountList { get; set; } } public interface IHasDualAccess : IItemByName { bool IsAccessedByName { get; } } public static class ItemByNameExtensions { public static ItemByNameCounts GetItemByNameCounts(this IItemByName item, Guid userId) { if (userId == Guid.Empty) { throw new ArgumentNullException("userId"); } return item.UserItemCountList.FirstOrDefault(i => i.UserId == userId); } public static void SetItemByNameCounts(this IItemByName item, Guid userId, ItemByNameCounts counts) { var current = item.UserItemCountList.FirstOrDefault(i => i.UserId == userId); if (current != null) { item.UserItemCountList.Remove(current); } counts.UserId = userId; item.UserItemCountList.Add(counts); } } }