summaryrefslogtreecommitdiffstats
path: root/src/WallE.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WallE.cs')
-rw-r--r--src/WallE.cs22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/WallE.cs b/src/WallE.cs
index b675d02..744d10f 100644
--- a/src/WallE.cs
+++ b/src/WallE.cs
@@ -21,8 +21,8 @@ public class WallE : BackgroundService
private async Task DoWork(CancellationToken stoppingToken) {
_logger.LogInformation("WallE is working.");
using var scope = Services.CreateScope();
- var eva = scope.ServiceProvider.GetRequiredService<Db>();
- var pastes = eva.Pastes.Where(c => c.DeletedAt != default || c.AutoDeleteAfter != default)
+ var db = scope.ServiceProvider.GetRequiredService<Db>();
+ var pastes = db.Pastes.Where(c => c.DeletedAt != default || c.AutoDeleteAfter != default)
.Select(c => new Paste() {
Id = c.Id,
DeletedAt = c.DeletedAt,
@@ -30,7 +30,7 @@ public class WallE : BackgroundService
CreatedAt = c.CreatedAt
})
.ToList();
- var files = eva.Files
+ var files = db.Files
.Where(c => c.DeletedAt != default || c.AutoDeleteAfter != default)
.Select(c => new File() {
Id = c.Id,
@@ -44,12 +44,16 @@ public class WallE : BackgroundService
var path = Path.Combine(Tools.GetFilesDirectoryPath(), file.Id.ToString());
if (DateTime.Compare(now, file.DeletedAt?.AddDays(7) ?? DateTime.MinValue) > 0) {
System.IO.File.Delete(path);
- eva.Files.Remove(file);
+ db.Files.Remove(file);
+ await db.SaveChangesAsync(stoppingToken);
+ _logger.LogInformation("Deleted file {fileId} completely", file.Id);
} else if (file.AutoDeleteAfter.HasValue()) {
var autoDeleteDateTime = file.CreatedAt.Add(Tools.ParseHumanTimeSpan(file.AutoDeleteAfter));
if (DateTime.Compare(now, autoDeleteDateTime) > 0) {
System.IO.File.Delete(path);
- eva.Files.Remove(file);
+ db.Files.Remove(file);
+ await db.SaveChangesAsync(stoppingToken);
+ _logger.LogInformation("Deleted file {fileId} completely", file.Id);
}
}
}
@@ -57,11 +61,15 @@ public class WallE : BackgroundService
// If the file has lived more than +7 days from when it should be automatically deleted, delete the file completely.
foreach (var paste in pastes) {
if (DateTime.Compare(now, paste.DeletedAt?.AddDays(7) ?? DateTime.MinValue) > 0) {
- eva.Pastes.Remove(paste);
+ db.Pastes.Remove(paste);
+ _logger.LogInformation("Deleted paste {pasteId} completely", paste.Id);
+ await db.SaveChangesAsync(stoppingToken);
} else if (paste.AutoDeleteAfter.HasValue()) {
var autoDeleteDateTime = paste.CreatedAt.Add(Tools.ParseHumanTimeSpan(paste.AutoDeleteAfter));
if (DateTime.Compare(now, autoDeleteDateTime) > 0) {
- eva.Pastes.Remove(paste);
+ db.Pastes.Remove(paste);
+ await db.SaveChangesAsync(stoppingToken);
+ _logger.LogInformation("Deleted paste {pasteId} completely", paste.Id);
}
}
}