aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-03-16 00:23:58 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-03-16 00:23:58 -0400
commitb36aea4ff74052ae40c27db057f50f645659aa57 (patch)
treef98c438363d961243fcf743c9a240a05429a2848 /MediaBrowser.Server.Implementations
parent4e6d306d0021cda1e909da2647b803ea7d505d4a (diff)
#712 - Support grouping multiple versions of a movie
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Collections/CollectionManager.cs3
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs7
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Session/SessionManager.cs10
4 files changed, 19 insertions, 3 deletions
diff --git a/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs b/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs
index 60d631c1a..c18856293 100644
--- a/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs
+++ b/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs
@@ -111,6 +111,7 @@ namespace MediaBrowser.Server.Implementations.Collections
}
var list = new List<LinkedChild>();
+ var currentLinkedChildren = collection.GetLinkedChildren().ToList();
foreach (var itemId in ids)
{
@@ -121,7 +122,7 @@ namespace MediaBrowser.Server.Implementations.Collections
throw new ArgumentException("No item exists with the supplied Id");
}
- if (collection.LinkedChildren.Any(i => i.ItemId.HasValue && i.ItemId == itemId))
+ if (currentLinkedChildren.Any(i => i.Id == itemId))
{
throw new ArgumentException("Item already exists in collection");
}
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index 6f6a3f043..19d834c20 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -1082,7 +1082,12 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.IsHD = video.IsHD;
dto.PartCount = video.AdditionalPartIds.Count + 1;
- dto.HasAlternateVersions = video.HasAlternateVersions;
+ dto.AlternateVersionCount = video.AlternateVersionCount;
+
+ if (video.PrimaryVersionId.HasValue)
+ {
+ dto.PrimaryVersionId = video.PrimaryVersionId.Value.ToString("N");
+ }
if (fields.Contains(ItemFields.Chapters))
{
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
index de10e669e..b11457ec5 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
@@ -410,7 +410,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
if (!string.IsNullOrWhiteSpace(filenamePrefix))
{
- if (sortedMovies.All(i => Path.GetFileNameWithoutExtension(i.Path).StartsWith(filenamePrefix, StringComparison.OrdinalIgnoreCase)))
+ if (sortedMovies.Skip(1).All(i => Path.GetFileNameWithoutExtension(i.Path).StartsWith(filenamePrefix + " - ", StringComparison.OrdinalIgnoreCase)))
{
firstMovie.HasLocalAlternateVersions = true;
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
index 71d95b97b..cea70a8b4 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs
+++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
@@ -690,6 +690,11 @@ namespace MediaBrowser.Server.Implementations.Session
}
}
+ if (session.UserId.HasValue)
+ {
+ command.ControllingUserId = session.UserId.Value.ToString("N");
+ }
+
return session.SessionController.SendPlayCommand(command, cancellationToken);
}
@@ -723,6 +728,11 @@ namespace MediaBrowser.Server.Implementations.Session
throw new ArgumentException(string.Format("Session {0} is unable to seek.", session.Id));
}
+ if (session.UserId.HasValue)
+ {
+ command.ControllingUserId = session.UserId.Value.ToString("N");
+ }
+
return session.SessionController.SendPlaystateCommand(command, cancellationToken);
}