diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-08-13 16:21:10 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-13 16:21:10 -0400 |
| commit | dc578f3742b474bd85d556299a6b2763f4d9acda (patch) | |
| tree | cc4a8d1de140ece77160349e51a64857656ab373 /Emby.Server.Implementations/Playlists | |
| parent | f6ed934a7e32bf10c3a141773d713bf3b19e784f (diff) | |
| parent | 7f200f057d33e3ef52b1b1b1bf1767577295317e (diff) | |
Merge pull request #2815 from MediaBrowser/beta
Beta
Diffstat (limited to 'Emby.Server.Implementations/Playlists')
| -rw-r--r-- | Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs | 17 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Playlists/PlaylistManager.cs | 23 |
2 files changed, 22 insertions, 18 deletions
diff --git a/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs b/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs index 127ce24ae4..c2e8603396 100644 --- a/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs +++ b/Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs @@ -27,7 +27,7 @@ namespace Emby.Server.Implementations.Playlists { } - protected override List<BaseItem> GetItemsWithImages(IHasImages item) + protected override List<BaseItem> GetItemsWithImages(IHasMetadata item) { var playlist = (Playlist)item; @@ -65,8 +65,7 @@ namespace Emby.Server.Implementations.Playlists return null; }) .Where(i => i != null) - .DistinctBy(i => i.Id) - .ToList(); + .DistinctBy(i => i.Id); return GetFinalItems(items); } @@ -81,7 +80,7 @@ namespace Emby.Server.Implementations.Playlists _libraryManager = libraryManager; } - protected override List<BaseItem> GetItemsWithImages(IHasImages item) + protected override List<BaseItem> GetItemsWithImages(IHasMetadata item) { var items = _libraryManager.GetItemList(new InternalItemsQuery { @@ -93,12 +92,12 @@ namespace Emby.Server.Implementations.Playlists ImageTypes = new[] { ImageType.Primary }, DtoOptions = new DtoOptions(false) - }).ToList(); + }); return GetFinalItems(items); } - //protected override Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + //protected override Task<string> CreateImage(IHasMetadata item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) //{ // return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary); //} @@ -113,7 +112,7 @@ namespace Emby.Server.Implementations.Playlists _libraryManager = libraryManager; } - protected override List<BaseItem> GetItemsWithImages(IHasImages item) + protected override List<BaseItem> GetItemsWithImages(IHasMetadata item) { var items = _libraryManager.GetItemList(new InternalItemsQuery { @@ -125,12 +124,12 @@ namespace Emby.Server.Implementations.Playlists ImageTypes = new[] { ImageType.Primary }, DtoOptions = new DtoOptions(false) - }).ToList(); + }); return GetFinalItems(items); } - //protected override Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + //protected override Task<string> CreateImage(IHasMetadata item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) //{ // return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary); //} diff --git a/Emby.Server.Implementations/Playlists/PlaylistManager.cs b/Emby.Server.Implementations/Playlists/PlaylistManager.cs index e0e133e38d..578a2321cc 100644 --- a/Emby.Server.Implementations/Playlists/PlaylistManager.cs +++ b/Emby.Server.Implementations/Playlists/PlaylistManager.cs @@ -12,10 +12,9 @@ using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; - using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; +using MediaBrowser.Model.Extensions; namespace Emby.Server.Implementations.Playlists { @@ -164,7 +163,7 @@ namespace Emby.Server.Implementations.Playlists return path; } - private IEnumerable<BaseItem> GetPlaylistItems(IEnumerable<string> itemIds, string playlistMediaType, User user, DtoOptions options) + private List<BaseItem> GetPlaylistItems(IEnumerable<string> itemIds, string playlistMediaType, User user, DtoOptions options) { var items = itemIds.Select(i => _libraryManager.GetItemById(i)).Where(i => i != null); @@ -206,7 +205,9 @@ namespace Emby.Server.Implementations.Playlists list.Add(LinkedChild.Create(item)); } - playlist.LinkedChildren.AddRange(list); + var newList = playlist.LinkedChildren.ToList(); + newList.AddRange(list); + playlist.LinkedChildren = newList.ToArray(newList.Count); await playlist.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); @@ -234,7 +235,7 @@ namespace Emby.Server.Implementations.Playlists playlist.LinkedChildren = children.Except(removals) .Select(i => i.Item1) - .ToList(); + .ToArray(); await playlist.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); @@ -265,17 +266,21 @@ namespace Emby.Server.Implementations.Playlists var item = playlist.LinkedChildren[oldIndex]; - playlist.LinkedChildren.Remove(item); + var newList = playlist.LinkedChildren.ToList(); - if (newIndex >= playlist.LinkedChildren.Count) + newList.Remove(item); + + if (newIndex >= newList.Count) { - playlist.LinkedChildren.Add(item); + newList.Add(item); } else { - playlist.LinkedChildren.Insert(newIndex, item); + newList.Insert(newIndex, item); } + playlist.LinkedChildren = newList.ToArray(newList.Count); + await playlist.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); } |
