From 0735526c70460e43d96c6db1a38f538b23ce7fbe Mon Sep 17 00:00:00 2001
From: Olga Nemt <on.nemtina@digitaldrilling.ru>
Date: Fri, 10 Nov 2023 15:39:52 +0500
Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF?=
 =?UTF-8?q?=D0=BE=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E,=20=D0=BF=D0=B5=D1=80?=
 =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F=20lifetime=20=D1=82?=
 =?UTF-8?q?=D0=B8=D0=BF=D0=B0=20TimeSpan?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 AsbCloudApp/Services/IReportService.cs                      | 4 ++--
 AsbCloudInfrastructure/Background/WorkToDeleteOldReports.cs | 2 +-
 AsbCloudInfrastructure/Services/ReportService.cs            | 5 +++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/AsbCloudApp/Services/IReportService.cs b/AsbCloudApp/Services/IReportService.cs
index de8896b9..f5096a78 100644
--- a/AsbCloudApp/Services/IReportService.cs
+++ b/AsbCloudApp/Services/IReportService.cs
@@ -61,9 +61,9 @@ namespace AsbCloudApp.Services
         /// <summary>
         /// Удаление отчетов, с момента загрузки которых прошло n дней
         /// </summary>
-        /// <param name="days">период, за который отчеты хранятся на сервере и при превышении которого удаляются</param>
+        /// <param name="lifetime">период хранения на сервере скачанных отчетов</param>
         /// <param name="token"></param>
         /// <returns></returns>
-        Task<int> DeleteAllOldReportsAsync(int days, CancellationToken token);
+        Task<int> DeleteAllOldReportsAsync(TimeSpan lifetime, CancellationToken token);
     }
 }
diff --git a/AsbCloudInfrastructure/Background/WorkToDeleteOldReports.cs b/AsbCloudInfrastructure/Background/WorkToDeleteOldReports.cs
index 0208dd14..683a7ee6 100644
--- a/AsbCloudInfrastructure/Background/WorkToDeleteOldReports.cs
+++ b/AsbCloudInfrastructure/Background/WorkToDeleteOldReports.cs
@@ -28,7 +28,7 @@ namespace AsbCloudInfrastructure.Background
         protected override async Task Action(string id, IServiceProvider services, Action<string, double?> onProgressCallback, CancellationToken token)
         {
             var reportService = services.GetRequiredService<IReportService>();
-            await reportService.DeleteAllOldReportsAsync(-30, token);
+            await reportService.DeleteAllOldReportsAsync(new TimeSpan(30, 0, 0, 0), token);
         }
     }
 }
diff --git a/AsbCloudInfrastructure/Services/ReportService.cs b/AsbCloudInfrastructure/Services/ReportService.cs
index a1afc26f..0b9da1a1 100644
--- a/AsbCloudInfrastructure/Services/ReportService.cs
+++ b/AsbCloudInfrastructure/Services/ReportService.cs
@@ -190,10 +190,11 @@ namespace AsbCloudInfrastructure.Services
             return generator;
         }
 
-        public async Task<int> DeleteAllOldReportsAsync(int days, CancellationToken token)
+        public async Task<int> DeleteAllOldReportsAsync(TimeSpan lifetime, CancellationToken token)
         {
+            var lifeTimeStartDate = DateTime.UtcNow.Date.Add(-lifetime);
             var fileIds = db.ReportProperties
-                .Where(r => r.File.UploadDate.Date < DateTime.UtcNow.Date.AddDays(days))
+                .Where(r => r.File.UploadDate.Date < lifeTimeStartDate)
                 .Select(r => r.IdFile);
 
             if (fileIds.Any())