diff options
Diffstat (limited to 'MediaBrowser.Api/VideosService.cs')
| -rw-r--r-- | MediaBrowser.Api/VideosService.cs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/MediaBrowser.Api/VideosService.cs b/MediaBrowser.Api/VideosService.cs index 729b50c1f..3bd0497f7 100644 --- a/MediaBrowser.Api/VideosService.cs +++ b/MediaBrowser.Api/VideosService.cs @@ -19,7 +19,7 @@ namespace MediaBrowser.Api { [Route("/Videos/{Id}/AdditionalParts", "GET", Summary = "Gets additional parts for a video.")] [Authenticated] - public class GetAdditionalParts : IReturn<ItemsResult> + public class GetAdditionalParts : IReturn<QueryResult<BaseItemDto>> { [ApiMember(Name = "UserId", Description = "Optional. Filter by user id, and attach user data", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public string UserId { get; set; } @@ -99,7 +99,7 @@ namespace MediaBrowser.Api items = new BaseItemDto[] { }; } - var result = new ItemsResult + var result = new QueryResult<BaseItemDto> { Items = items, TotalRecordCount = items.Length @@ -126,7 +126,7 @@ namespace MediaBrowser.Api await link.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); } - video.LinkedAlternateVersions.Clear(); + video.LinkedAlternateVersions = Video.EmptyLinkedChildArray; await video.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); } @@ -140,7 +140,6 @@ namespace MediaBrowser.Api public async Task PostAsync(MergeVersions request) { var items = request.Ids.Split(',') - .Select(i => new Guid(i)) .Select(i => _libraryManager.GetItemById(i)) .OfType<Video>() .ToList(); @@ -185,19 +184,23 @@ namespace MediaBrowser.Api }).First(); } + var list = primaryVersion.LinkedAlternateVersions.ToList(); + foreach (var item in items.Where(i => i.Id != primaryVersion.Id)) { item.PrimaryVersionId = primaryVersion.Id.ToString("N"); await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - primaryVersion.LinkedAlternateVersions.Add(new LinkedChild + list.Add(new LinkedChild { Path = item.Path, ItemId = item.Id }); } + primaryVersion.LinkedAlternateVersions = list.ToArray(); + await primaryVersion.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); } } |
