From 364a13226aeb53a872c0cd74b2961b0bb78a88bc Mon Sep 17 00:00:00 2001 From: "DESKTOP-T0O5CDB\\DESK-555BD" Date: Thu, 22 Aug 2024 11:11:17 -0600 Subject: [PATCH] Added return object. --- Controllers/APIController.cs | 30 ++++++++++ Helper/FileHelper.cs | 19 ++++++ Views/API/Index.cshtml | 113 ++++++++++++++++++++--------------- 3 files changed, 113 insertions(+), 49 deletions(-) diff --git a/Controllers/APIController.cs b/Controllers/APIController.cs index cd472e9..66bb0de 100644 --- a/Controllers/APIController.cs +++ b/Controllers/APIController.cs @@ -21,6 +21,9 @@ public class APIController : Controller private readonly IReminderRecordDataAccess _reminderRecordDataAccess; private readonly IUpgradeRecordDataAccess _upgradeRecordDataAccess; private readonly IOdometerRecordDataAccess _odometerRecordDataAccess; + private readonly ISupplyRecordDataAccess _supplyRecordDataAccess; + private readonly IPlanRecordDataAccess _planRecordDataAccess; + private readonly IPlanRecordTemplateDataAccess _planRecordTemplateDataAccess; private readonly IUserAccessDataAccess _userAccessDataAccess; private readonly IUserRecordDataAccess _userRecordDataAccess; private readonly IReminderHelper _reminderHelper; @@ -42,6 +45,9 @@ public APIController(IVehicleDataAccess dataAccess, IReminderRecordDataAccess reminderRecordDataAccess, IUpgradeRecordDataAccess upgradeRecordDataAccess, IOdometerRecordDataAccess odometerRecordDataAccess, + ISupplyRecordDataAccess supplyRecordDataAccess, + IPlanRecordDataAccess planRecordDataAccess, + IPlanRecordTemplateDataAccess planRecordTemplateDataAccess, IUserAccessDataAccess userAccessDataAccess, IUserRecordDataAccess userRecordDataAccess, IMailHelper mailHelper, @@ -60,6 +66,9 @@ public APIController(IVehicleDataAccess dataAccess, _reminderRecordDataAccess = reminderRecordDataAccess; _upgradeRecordDataAccess = upgradeRecordDataAccess; _odometerRecordDataAccess = odometerRecordDataAccess; + _supplyRecordDataAccess = supplyRecordDataAccess; + _planRecordDataAccess = planRecordDataAccess; + _planRecordTemplateDataAccess = planRecordTemplateDataAccess; _userAccessDataAccess = userAccessDataAccess; _userRecordDataAccess = userRecordDataAccess; _mailHelper = mailHelper; @@ -579,6 +588,27 @@ public IActionResult CleanUp(bool deepClean = false) var thumbnailsDeleted = _fileHelper.ClearUnlinkedThumbnails(vehicleImages); jsonResponse.Add("unlinked_thumbnails_deleted", thumbnailsDeleted.ToString()); } + var vehicleDocuments = new List(); + foreach(Vehicle vehicle in vehicles) + { + vehicleDocuments.AddRange(_serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y=>Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_collisionRecordDataAccess.GetCollisionRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_upgradeRecordDataAccess.GetUpgradeRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_taxRecordDataAccess.GetTaxRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_gasRecordDataAccess.GetGasRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_noteDataAccess.GetNotesByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_odometerRecordDataAccess.GetOdometerRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_supplyRecordDataAccess.GetSupplyRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_planRecordDataAccess.GetPlanRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + vehicleDocuments.AddRange(_planRecordTemplateDataAccess.GetPlanRecordTemplatesByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + } + //shop supplies + vehicleDocuments.AddRange(_supplyRecordDataAccess.GetSupplyRecordsByVehicleId(0).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location))); + if (vehicleDocuments.Any()) + { + var documentsDeleted = _fileHelper.ClearUnlinkedDocuments(vehicleDocuments); + jsonResponse.Add("unlinked_documents_deleted", documentsDeleted.ToString()); + } } return Json(jsonResponse); } diff --git a/Helper/FileHelper.cs b/Helper/FileHelper.cs index a828c2b..e3c70fa 100644 --- a/Helper/FileHelper.cs +++ b/Helper/FileHelper.cs @@ -15,6 +15,7 @@ public interface IFileHelper List GetLanguages(); int ClearTempFolder(); int ClearUnlinkedThumbnails(List linkedImages); + int ClearUnlinkedDocuments(List linkedDocuments); } public class FileHelper : IFileHelper { @@ -349,5 +350,23 @@ public int ClearUnlinkedThumbnails(List linkedImages) } return filesDeleted; } + public int ClearUnlinkedDocuments(List linkedDocuments) + { + int filesDeleted = 0; + var documentPath = GetFullFilePath("documents", false); + if (Directory.Exists(documentPath)) + { + var files = Directory.GetFiles(documentPath); + foreach (var file in files) + { + if (!linkedDocuments.Contains(Path.GetFileName(file))) + { + File.Delete(file); + filesDeleted++; + } + } + } + return filesDeleted; + } } } diff --git a/Views/API/Index.cshtml b/Views/API/Index.cshtml index c57c7b4..240a8bc 100644 --- a/Views/API/Index.cshtml +++ b/Views/API/Index.cshtml @@ -40,6 +40,55 @@ No Params +
+
+ GET +
+
+ /api/vehicle/odometerrecords +
+
+ Returns a list of odometer records for the vehicle +
+
+ vehicleId - Id of Vehicle +
+
+
+
+ GET +
+
+ /api/vehicle/odometerrecords/latest +
+
+ Returns last reported odometer for the vehicle +
+
+ vehicleId - Id of Vehicle +
+
+
+
+ POST +
+
+ /api/vehicle/odometerrecords/add +
+
+ Adds Odometer Record to the vehicle +
+
+ vehicleId - Id of Vehicle +
+ Body(form-data): {
+ date - Date to be entered
+ initialOdometer - Initial Odometer reading(optional)
+ odometer - Odometer reading
+ notes - notes(optional)
+ } +
+
GET @@ -270,56 +319,22 @@ No Params(must be root user)
-} -
-
- GET -
-
- /api/vehicle/odometerrecords -
-
- Returns a list of odometer records for the vehicle -
-
- vehicleId - Id of Vehicle -
-
-
-
- GET -
-
- /api/vehicle/odometerrecords/latest -
-
- Returns last reported odometer for the vehicle -
-
- vehicleId - Id of Vehicle -
-
-
-
- POST -
-
- /api/vehicle/odometerrecords/add -
-
- Adds Odometer Record to the vehicle -
-
- vehicleId - Id of Vehicle -
- Body(form-data): {
- date - Date to be entered
- initialOdometer - Initial Odometer reading(optional)
- odometer - Odometer reading
- notes - notes(optional)
- } +
+
+ GET +
+
+ /api/cleanup +
+
+ Clears out temp files. Deep clean will also delete unlinked thumbnails and documents. Returns number of deleted files. +
+
+ (must be root user)
+ deepClean(bool) - Perform deep clean +
-
+}