aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/Folder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/Folder.cs')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs69
1 files changed, 24 insertions, 45 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 34f52aac5..87ad9c380 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -1,5 +1,4 @@
-using MediaBrowser.Common.Extensions;
-using MediaBrowser.Common.Progress;
+using MediaBrowser.Common.Progress;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Localization;
@@ -59,6 +58,20 @@ namespace MediaBrowser.Controller.Entities
}
}
+ [IgnoreDataMember]
+ public override string FileNameWithoutExtension
+ {
+ get
+ {
+ if (LocationType == LocationType.FileSystem)
+ {
+ return System.IO.Path.GetFileName(Path);
+ }
+
+ return null;
+ }
+ }
+
/// <summary>
/// Gets or sets a value indicating whether this instance is physical root.
/// </summary>
@@ -103,7 +116,7 @@ namespace MediaBrowser.Controller.Entities
if (item.Id == Guid.Empty)
{
- item.Id = item.Path.GetMBId(item.GetType());
+ item.Id = LibraryManager.GetNewItemId(item.Path, item.GetType());
}
if (ActualChildren.Any(i => i.Id == item.Id))
@@ -364,47 +377,7 @@ namespace MediaBrowser.Controller.Entities
private bool IsValidFromResolver(BaseItem current, BaseItem newItem)
{
- var currentAsVideo = current as Video;
-
- if (currentAsVideo != null)
- {
- var newAsVideo = newItem as Video;
-
- if (newAsVideo != null)
- {
- if (currentAsVideo.IsPlaceHolder != newAsVideo.IsPlaceHolder)
- {
- return false;
- }
- if (currentAsVideo.IsMultiPart != newAsVideo.IsMultiPart)
- {
- return false;
- }
- if (currentAsVideo.HasLocalAlternateVersions != newAsVideo.HasLocalAlternateVersions)
- {
- return false;
- }
- }
- }
- else
- {
- var currentAsPlaceHolder = current as ISupportsPlaceHolders;
-
- if (currentAsPlaceHolder != null)
- {
- var newHasPlaceHolder = newItem as ISupportsPlaceHolders;
-
- if (newHasPlaceHolder != null)
- {
- if (currentAsPlaceHolder.IsPlaceHolder != newHasPlaceHolder.IsPlaceHolder)
- {
- return false;
- }
- }
- }
- }
-
- return current.IsInMixedFolder == newItem.IsInMixedFolder;
+ return current.IsValidFromResolver(newItem);
}
/// <summary>
@@ -737,7 +710,7 @@ namespace MediaBrowser.Controller.Entities
{
var collectionType = LibraryManager.FindCollectionType(this);
- return LibraryManager.ResolvePaths<BaseItem>(GetFileSystemChildren(directoryService), directoryService, this, collectionType);
+ return LibraryManager.ResolvePaths(GetFileSystemChildren(directoryService), directoryService, this, collectionType);
}
/// <summary>
@@ -782,6 +755,12 @@ namespace MediaBrowser.Controller.Entities
private BaseItem RetrieveChild(BaseItem child)
{
+ if (child.Id == Guid.Empty)
+ {
+ Logger.Error("Item found with empty Id: " + (child.Path ?? child.Name));
+ return null;
+ }
+
var item = LibraryManager.GetMemoryItemById(child.Id);
if (item != null)