/// <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); } }
/// <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); } }