/// <summary>
        /// Validates that images within the item are still on the file system
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="args">The args.</param>
        private void ValidateImages(BaseItem item, ItemResolveArgs args)
        {
            // Only validate paths from the same directory - need to copy to a list because we are going to potentially modify the collection below
            var deletedKeys = item.Images.ToList().Where(image =>
            {
                var path = image.Value;

                return(IsInMetaLocation(item, path) && args.GetMetaFileByPath(path) == null);
            }).Select(i => i.Key).ToList();

            // Now remove them from the dictionary
            foreach (var key in deletedKeys)
            {
                item.Images.Remove(key);
            }
        }
Exemple #2
0
 /// <summary>
 /// Gets the image.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <param name="args">The args.</param>
 /// <param name="filenameWithoutExtension">The filename without extension.</param>
 /// <returns>FileSystemInfo.</returns>
 protected virtual FileSystemInfo GetImage(BaseItem item, ItemResolveArgs args, string filenameWithoutExtension)
 {
     return(BaseItem.SupportedImageExtensions
            .Select(i => args.GetMetaFileByPath(GetFullImagePath(item, args, filenameWithoutExtension, i)))
            .FirstOrDefault(i => i != null));
 }
        /// <summary>
        /// Validates the screenshots.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="args">The args.</param>
        private void ValidateScreenshots(BaseItem item, ItemResolveArgs args)
        {
            // Only validate paths from the same directory - need to copy to a list because we are going to potentially modify the collection below
            var deletedImages = item.ScreenshotImagePaths.Where(path => IsInMetaLocation(item, path) && args.GetMetaFileByPath(path) == null).ToList();

            // Now remove them from the dictionary
            foreach (var path in deletedImages)
            {
                item.ScreenshotImagePaths.Remove(path);
            }
        }