|
|
|
@ -1171,18 +1171,34 @@ namespace MediaBrowser.Server.Implementations.Library
|
|
|
|
|
/// <returns>IEnumerable{VirtualFolderInfo}.</returns>
|
|
|
|
|
private IEnumerable<VirtualFolderInfo> GetView(string path)
|
|
|
|
|
{
|
|
|
|
|
var topLibraryFolders = GetUserRootFolder().Children.ToList();
|
|
|
|
|
|
|
|
|
|
return _fileSystem.GetDirectoryPaths(path)
|
|
|
|
|
.Select(dir => new VirtualFolderInfo
|
|
|
|
|
{
|
|
|
|
|
Name = Path.GetFileName(dir),
|
|
|
|
|
.Select(dir => GetVirtualFolderInfo(dir, topLibraryFolders));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Locations = Directory.EnumerateFiles(dir, "*.mblink", SearchOption.TopDirectoryOnly)
|
|
|
|
|
.Select(_fileSystem.ResolveShortcut)
|
|
|
|
|
.OrderBy(i => i)
|
|
|
|
|
.ToList(),
|
|
|
|
|
private VirtualFolderInfo GetVirtualFolderInfo(string dir, List<BaseItem> collectionFolders)
|
|
|
|
|
{
|
|
|
|
|
var info = new VirtualFolderInfo
|
|
|
|
|
{
|
|
|
|
|
Name = Path.GetFileName(dir),
|
|
|
|
|
|
|
|
|
|
CollectionType = GetCollectionType(dir)
|
|
|
|
|
});
|
|
|
|
|
Locations = Directory.EnumerateFiles(dir, "*.mblink", SearchOption.TopDirectoryOnly)
|
|
|
|
|
.Select(_fileSystem.ResolveShortcut)
|
|
|
|
|
.OrderBy(i => i)
|
|
|
|
|
.ToList(),
|
|
|
|
|
|
|
|
|
|
CollectionType = GetCollectionType(dir)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var libraryFolder = collectionFolders.FirstOrDefault(i => string.Equals(i.Path, dir, StringComparison.OrdinalIgnoreCase));
|
|
|
|
|
|
|
|
|
|
if (libraryFolder != null && libraryFolder.HasImage(ImageType.Primary))
|
|
|
|
|
{
|
|
|
|
|
info.PrimaryImageItemId = libraryFolder.Id.ToString("N");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return info;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string GetCollectionType(string path)
|
|
|
|
|