Wp2ghost/GhostImageManager/Services/ImageDeletionService.cs
2026-09-28 19:09:09 +02:00

62 lines
1.6 KiB
C#

using GhostImageManager.Models;
namespace GhostImageManager.Services;
public class ImageDeletionService
{
private readonly ILogger<ImageDeletionService> _logger;
public ImageDeletionService(ILogger<ImageDeletionService> logger)
{
_logger = logger;
}
public Task<bool> DeleteImageAsync(GhostImage image)
{
_logger.LogInformation("Lösche Bild: {FileName} ({FilePath})", image.FileName, image.FilePath);
return Task.FromResult(DeleteFile(image.FilePath));
}
public Task<(int Success, int Failed)> DeleteImagesAsync(IEnumerable<GhostImage> 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;
}
}
}