diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-02 16:21:47 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-02 16:21:47 -0500 |
| commit | b50fc351a12fa890b2d4ab6e71b7a4b609dd583c (patch) | |
| tree | 77a54a812809682bd2c0a7e5c769ba54786534dc | |
| parent | 8369f16d667abf324324d9c567bff445a62013e1 (diff) | |
add null checks to video methods
| -rw-r--r-- | MediaBrowser.Controller/Entities/Video.cs | 20 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs | 15 |
2 files changed, 32 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index ba0e71d7d..19cad7948 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -225,11 +225,25 @@ namespace MediaBrowser.Controller.Entities { IEnumerable<FileSystemInfo> files; + var path = Path; + + if (string.IsNullOrEmpty(path)) + { + throw new ApplicationException(string.Format("Item {0} has a null path.", Name ?? Id.ToString())); + } + if (VideoType == VideoType.BluRay || VideoType == VideoType.Dvd) { - files = new DirectoryInfo(System.IO.Path.GetDirectoryName(Path)) + var parentPath = System.IO.Path.GetDirectoryName(path); + + if (string.IsNullOrEmpty(parentPath)) + { + throw new ApplicationException("Unable to get parent path info from " + path); + } + + files = new DirectoryInfo(parentPath) .EnumerateDirectories() - .Where(i => !string.Equals(i.FullName, Path, StringComparison.OrdinalIgnoreCase) && EntityResolutionHelper.IsMultiPartFile(i.Name)); + .Where(i => !string.Equals(i.FullName, path, StringComparison.OrdinalIgnoreCase) && EntityResolutionHelper.IsMultiPartFile(i.Name)); } else { @@ -240,7 +254,7 @@ namespace MediaBrowser.Controller.Entities return false; } - return !string.Equals(i.FullName, Path, StringComparison.OrdinalIgnoreCase) && EntityResolutionHelper.IsVideoFile(i.FullName) && EntityResolutionHelper.IsMultiPartFile(i.Name); + return !string.Equals(i.FullName, path, StringComparison.OrdinalIgnoreCase) && EntityResolutionHelper.IsVideoFile(i.FullName) && EntityResolutionHelper.IsMultiPartFile(i.Name); }); } diff --git a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs index 3cd38da45..079571ee9 100644 --- a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs +++ b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs @@ -66,6 +66,11 @@ namespace MediaBrowser.Controller.Resolvers /// <returns><c>true</c> if [is multi part file] [the specified path]; otherwise, <c>false</c>.</returns> public static bool IsMultiPartFile(string path) { + if (string.IsNullOrEmpty(path)) + { + throw new ArgumentNullException("path"); + } + return MultiFileRegex.Match(path).Success || MultiFolderRegex.Match(path).Success; } @@ -97,6 +102,11 @@ namespace MediaBrowser.Controller.Resolvers /// <returns><c>true</c> if [is audio file] [the specified args]; otherwise, <c>false</c>.</returns> public static bool IsAudioFile(string path) { + if (string.IsNullOrEmpty(path)) + { + throw new ArgumentNullException("path"); + } + var extension = Path.GetExtension(path); if (string.IsNullOrEmpty(extension)) @@ -114,6 +124,11 @@ namespace MediaBrowser.Controller.Resolvers /// <returns><c>true</c> if [is video file] [the specified path]; otherwise, <c>false</c>.</returns> public static bool IsVideoFile(string path) { + if (string.IsNullOrEmpty(path)) + { + throw new ArgumentNullException("path"); + } + var extension = Path.GetExtension(path); if (string.IsNullOrEmpty(extension)) |
