瀏覽代碼

fix ambiguous method call

Luke Pulverenti 11 年之前
父節點
當前提交
c9345179db

+ 4 - 9
MediaBrowser.Controller/Entities/Folder.cs

@@ -1032,7 +1032,7 @@ namespace MediaBrowser.Controller.Entities
         /// <exception cref="System.ArgumentNullException"></exception>
         public IEnumerable<BaseItem> GetRecursiveChildren(User user, bool includeLinkedChildren = true)
         {
-            return GetRecursiveChildren(user, null, true);
+            return GetRecursiveChildren(user, null, includeLinkedChildren);
         }
 
         /// <summary>
@@ -1047,7 +1047,7 @@ namespace MediaBrowser.Controller.Entities
         {
             if (user == null)
             {
-                throw new ArgumentNullException();
+                throw new ArgumentNullException("user");
             }
 
             var initialCount = _lastRecursiveCount == 0 ? _children.Count : _lastRecursiveCount;
@@ -1057,12 +1057,7 @@ namespace MediaBrowser.Controller.Entities
 
             _lastRecursiveCount = list.Count;
 
-            if (includeLinkedChildren && hasLinkedChildren)
-            {
-                list = list.DistinctBy(i => i.Id).ToList();
-            }
-
-            return list;
+            return hasLinkedChildren ? list.DistinctBy(i => i.Id).ToList() : list;
         }
 
         /// <summary>
@@ -1071,7 +1066,7 @@ namespace MediaBrowser.Controller.Entities
         /// <returns>IList{BaseItem}.</returns>
         public IList<BaseItem> GetRecursiveChildren()
         {
-            return GetRecursiveChildren(null);
+            return GetRecursiveChildren(null, null, true);
         }
 
         /// <summary>

+ 4 - 2
MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs

@@ -230,7 +230,9 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
 
             var collections = user.RootFolder.GetChildren(user, true).ToList();
 
-            var allRecursiveChildren = user.RootFolder.GetRecursiveChildren(user).ToDictionary(i => i.Id);
+            var allRecursiveChildren = user.RootFolder.GetRecursiveChildren(user)
+                .Select(i => i.Id)
+                .ToDictionary(i => i);
 
             return new LibraryUpdateInfo
             {
@@ -256,7 +258,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
         /// <param name="allRecursiveChildren">All recursive children.</param>
         /// <param name="includeIfNotFound">if set to <c>true</c> [include if not found].</param>
         /// <returns>IEnumerable{``0}.</returns>
-        private IEnumerable<T> TranslatePhysicalItemToUserLibrary<T>(T item, User user, IEnumerable<BaseItem> collections, Dictionary<Guid, BaseItem> allRecursiveChildren, bool includeIfNotFound = false)
+        private IEnumerable<T> TranslatePhysicalItemToUserLibrary<T>(T item, User user, IEnumerable<BaseItem> collections, Dictionary<Guid, Guid> allRecursiveChildren, bool includeIfNotFound = false)
             where T : BaseItem
         {
             // If the physical root changed, return the user root

+ 12 - 6
MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs

@@ -95,17 +95,23 @@ namespace MediaBrowser.Server.Implementations.Session
             var version = vals[2];
             var deviceName = vals.Length > 3 ? vals[3] : string.Empty;
 
-            if (!string.IsNullOrEmpty(deviceName))
-            {
-                _logger.Debug("Logging session activity");
-                await _sessionManager.LogSessionActivity(client, version, deviceId, deviceName, null).ConfigureAwait(false);
-            }
-
             var session = _sessionManager.Sessions
                 .FirstOrDefault(i => string.Equals(i.DeviceId, deviceId) &&
                     string.Equals(i.Client, client) &&
                     string.Equals(i.ApplicationVersion, version));
 
+            if (session == null && !string.IsNullOrEmpty(deviceName))
+            {
+                _logger.Debug("Logging session activity");
+
+                await _sessionManager.LogSessionActivity(client, version, deviceId, deviceName, null).ConfigureAwait(false);
+
+                session = _sessionManager.Sessions
+                    .FirstOrDefault(i => string.Equals(i.DeviceId, deviceId) &&
+                        string.Equals(i.Client, client) &&
+                        string.Equals(i.ApplicationVersion, version));
+            }
+
             if (session != null)
             {
                 var controller = new WebSocketController(session, _appHost);