diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItem.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 48bfd8075..a4cbd1b07 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1475,22 +1475,49 @@ namespace MediaBrowser.Controller.Entities /// Deletes the image. /// </summary> /// <param name="type">The type.</param> + /// <param name="index">The index.</param> /// <returns>Task.</returns> - public async Task DeleteImage(ImageType type) + public Task DeleteImage(ImageType type, int? index) { - if (!HasImage(type)) + if (type == ImageType.Backdrop) { - return; + if (!index.HasValue) + { + throw new ArgumentException("Please specify a backdrop image index to delete."); + } + + var file = BackdropImagePaths[index.Value]; + + BackdropImagePaths.Remove(file); + + // Delete the source file + File.Delete(file); } + else if (type == ImageType.Screenshot) + { + if (!index.HasValue) + { + throw new ArgumentException("Please specify a screenshot image index to delete."); + } + + var file = ScreenshotImagePaths[index.Value]; - // Delete the source file - File.Delete(GetImage(type)); + ScreenshotImagePaths.Remove(file); + + // Delete the source file + File.Delete(file); + } + else + { + // Delete the source file + File.Delete(GetImage(type)); - // Remove it from the item - SetImage(type, null); + // Remove it from the item + SetImage(type, null); + } // Refresh metadata - await RefreshMetadata(CancellationToken.None).ConfigureAwait(false); + return RefreshMetadata(CancellationToken.None); } } } |
