瀏覽代碼

handle errors getting physical paths of an item

Luke Pulverenti 11 年之前
父節點
當前提交
33e1e53673
共有 1 個文件被更改,包括 22 次插入1 次删除
  1. 22 1
      MediaBrowser.Api/Library/LibraryService.cs

+ 22 - 1
MediaBrowser.Api/Library/LibraryService.cs

@@ -1,6 +1,7 @@
 using MediaBrowser.Common;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
+using MediaBrowser.Model.Entities;
 using ServiceStack;
 using System;
 using System.Collections.Generic;
@@ -67,7 +68,27 @@ namespace MediaBrowser.Api.Library
         /// <returns>System.Object.</returns>
         public object Get(GetPhyscialPaths request)
         {
-            var result = _libraryManager.RootFolder.Children.SelectMany(c => c.ResolveArgs.PhysicalLocations).ToList();
+            var result = _libraryManager.RootFolder.Children
+                .SelectMany(c =>
+                {
+                    var locationType = c.LocationType;
+
+                    if (locationType != LocationType.Remote && locationType != LocationType.Virtual)
+                    {
+                        try
+                        {
+                            return c.ResolveArgs.PhysicalLocations;
+                        }
+                        catch (Exception ex)
+                        {
+                            Logger.ErrorException("Error getting ResolveArgs for {0}", ex, c.Path);
+                        }
+
+                    }
+
+                    return new List<string>();
+                })
+                .ToList();
 
             return ToOptimizedResult(result);
         }