| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- #pragma warning disable CS1591
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using Emby.Naming.Common;
 
- using Emby.Naming.Video;
 
- using MediaBrowser.Model.IO;
 
- namespace Emby.Naming.AudioBook
 
- {
 
-     public class AudioBookListResolver
 
-     {
 
-         private readonly NamingOptions _options;
 
-         public AudioBookListResolver(NamingOptions options)
 
-         {
 
-             _options = options;
 
-         }
 
-         public IEnumerable<AudioBookInfo> Resolve(IEnumerable<FileSystemMetadata> files)
 
-         {
 
-             var audioBookResolver = new AudioBookResolver(_options);
 
-             var audiobookFileInfos = files
 
-                 .Select(i => audioBookResolver.Resolve(i.FullName, i.IsDirectory))
 
-                 .Where(i => i != null)
 
-                 .ToList();
 
-             // Filter out all extras, otherwise they could cause stacks to not be resolved
 
-             // See the unit test TestStackedWithTrailer
 
-             var metadata = audiobookFileInfos
 
-                 .Select(i => new FileSystemMetadata { FullName = i.Path, IsDirectory = i.IsDirectory });
 
-             var stackResult = new StackResolver(_options)
 
-                 .ResolveAudioBooks(metadata);
 
-             foreach (var stack in stackResult)
 
-             {
 
-                 var stackFiles = stack.Files.Select(i => audioBookResolver.Resolve(i, stack.IsDirectoryStack)).ToList();
 
-                 stackFiles.Sort();
 
-                 var info = new AudioBookInfo { Files = stackFiles, Name = stack.Name };
 
-                 yield return info;
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |