using GhostImageManager.Models; namespace GhostImageManager.Services; public class ImageDeletionService { private readonly ILogger _logger; public ImageDeletionService(ILogger logger) { _logger = logger; } public Task DeleteImageAsync(GhostImage image) { return Task.FromResult(DeleteFile(image.FilePath)); } public Task<(int Success, int Failed)> DeleteImagesAsync(IEnumerable images) { int success = 0; int failed = 0; foreach (var image in images) { if (DeleteFile(image.FilePath)) success++; else failed++; } return Task.FromResult((success, failed)); } private bool DeleteFile(string filePath) { try { if (!File.Exists(filePath)) { _logger.LogWarning("Datei nicht gefunden: {Path}", filePath); return false; } File.Delete(filePath); // Auch Backup löschen, falls vorhanden var backupPath = filePath + ".backup"; if (File.Exists(backupPath)) File.Delete(backupPath); _logger.LogInformation("Datei gelöscht: {Path}", filePath); return true; } catch (Exception ex) { _logger.LogError(ex, "Fehler beim Löschen von {Path}", filePath); return false; } } }