diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2023-01-16 22:36:58 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2023-01-16 22:36:58 +0100 |
| commit | cc1a2f82a7b560fddcbe74db66aad2e399594862 (patch) | |
| tree | 6a7e42a9597fc767bb699b8e81709eb3be6fb1aa /src/WallE.cs | |
| parent | 8a7c318f6273c51ea1b96c87f98b0320ef339e16 (diff) | |
| download | blob-bin-cc1a2f82a7b560fddcbe74db66aad2e399594862.tar.xz blob-bin-cc1a2f82a7b560fddcbe74db66aad2e399594862.zip | |
feat: Div
Diffstat (limited to 'src/WallE.cs')
| -rw-r--r-- | src/WallE.cs | 22 |
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); } } } |
