| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | using MediaBrowser.Controller.Drawing;using MediaBrowser.Controller.Entities;using MediaBrowser.Controller.Library;using MediaBrowser.Controller.Resolvers;using MediaBrowser.Model.Entities;using System;using System.IO;using System.Linq;namespace MediaBrowser.Server.Implementations.Library.Resolvers{    public class PhotoAlbumResolver : FolderResolver<PhotoAlbum>    {        private readonly IImageProcessor _imageProcessor;        public PhotoAlbumResolver(IImageProcessor imageProcessor)        {            _imageProcessor = imageProcessor;        }        /// <summary>        /// Resolves the specified args.        /// </summary>        /// <param name="args">The args.</param>        /// <returns>Trailer.</returns>        protected override PhotoAlbum Resolve(ItemResolveArgs args)        {            // Must be an image file within a photo collection            if (args.IsDirectory && string.Equals(args.GetCollectionType(), CollectionType.Photos, StringComparison.OrdinalIgnoreCase))            {                if (HasPhotos(args))                {                    return new PhotoAlbum                    {                        Path = args.Path                    };                }            }            return null;        }        private bool HasPhotos(ItemResolveArgs args)        {            return args.FileSystemChildren.Any(i => ((i.Attributes & FileAttributes.Directory) != FileAttributes.Directory) && PhotoResolver.IsImageFile(i.FullName, _imageProcessor));        }        public override ResolverPriority Priority        {            get            {                // Behind special folder resolver                return ResolverPriority.Second;            }        }    }}
 |