aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/VideosService.cs
diff options
context:
space:
mode:
authorstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
committerstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
commit48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch)
tree8dae77a31670a888d733484cb17dd4077d5444e8 /MediaBrowser.Api/VideosService.cs
parentc32d8656382a0eacb301692e0084377fc433ae9b (diff)
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'MediaBrowser.Api/VideosService.cs')
-rw-r--r--MediaBrowser.Api/VideosService.cs34
1 files changed, 21 insertions, 13 deletions
diff --git a/MediaBrowser.Api/VideosService.cs b/MediaBrowser.Api/VideosService.cs
index 3f4bb46f4..40d2e066c 100644
--- a/MediaBrowser.Api/VideosService.cs
+++ b/MediaBrowser.Api/VideosService.cs
@@ -22,7 +22,7 @@ namespace MediaBrowser.Api
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; }
+ public Guid UserId { get; set; }
/// <summary>
/// Gets or sets the id.
@@ -76,11 +76,11 @@ namespace MediaBrowser.Api
/// <returns>System.Object.</returns>
public object Get(GetAdditionalParts request)
{
- var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
+ var user = !request.UserId.Equals(Guid.Empty) ? _userManager.GetUserById(request.UserId) : null;
var item = string.IsNullOrEmpty(request.Id)
- ? (!string.IsNullOrWhiteSpace(request.UserId)
- ? user.RootFolder
+ ? (!request.UserId.Equals(Guid.Empty)
+ ? _libraryManager.GetUserRootFolder()
: _libraryManager.RootFolder)
: _libraryManager.GetItemById(request.Id);
@@ -105,7 +105,7 @@ namespace MediaBrowser.Api
TotalRecordCount = items.Length
};
- return ToOptimizedSerializedResultUsingCache(result);
+ return ToOptimizedResult(result);
}
public void Delete(DeleteAlternateSources request)
@@ -115,12 +115,12 @@ namespace MediaBrowser.Api
foreach (var link in video.GetLinkedAlternateVersions())
{
link.SetPrimaryVersionId(null);
- link.LinkedAlternateVersions = Video.EmptyLinkedChildArray;
+ link.LinkedAlternateVersions = Array.Empty<LinkedChild>();
link.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
}
- video.LinkedAlternateVersions = Video.EmptyLinkedChildArray;
+ video.LinkedAlternateVersions = Array.Empty<LinkedChild>();
video.SetPrimaryVersionId(null);
video.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
}
@@ -140,11 +140,6 @@ namespace MediaBrowser.Api
var videosWithVersions = items.Where(i => i.MediaSourceCount > 1)
.ToList();
- if (videosWithVersions.Count > 1)
- {
- throw new ArgumentException("Videos with sub-versions cannot be merged.");
- }
-
var primaryVersion = videosWithVersions.FirstOrDefault();
if (primaryVersion == null)
@@ -185,10 +180,23 @@ namespace MediaBrowser.Api
Path = item.Path,
ItemId = item.Id
});
+
+ foreach (var linkedItem in item.LinkedAlternateVersions)
+ {
+ if (!list.Any(i => string.Equals(i.Path, linkedItem.Path, StringComparison.OrdinalIgnoreCase)))
+ {
+ list.Add(linkedItem);
+ }
+ }
+
+ if (item.LinkedAlternateVersions.Length > 0)
+ {
+ item.LinkedAlternateVersions = Array.Empty<LinkedChild>();
+ item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
+ }
}
primaryVersion.LinkedAlternateVersions = list.ToArray();
-
primaryVersion.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
}
}