From 07b3020999bb200ac64db527cf4442ac44217a56 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Wed, 27 Mar 2024 11:39:30 -0600 Subject: [PATCH] use current mileage and date when renewing reminders. --- Controllers/VehicleController.cs | 18 +++++++++--------- Helper/ReminderHelper.cs | 22 ++++++++++++---------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index e58c9fe..d98bf7a 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -832,7 +832,7 @@ namespace CarCareTracker.Controllers { foreach(int reminderRecordId in serviceRecord.ReminderRecordId) { - PushbackRecurringReminderRecordWithChecks(reminderRecordId); + PushbackRecurringReminderRecordWithChecks(reminderRecordId, DateTime.Parse(serviceRecord.Date), serviceRecord.Mileage); } } var result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(serviceRecord.ToServiceRecord()); @@ -924,7 +924,7 @@ namespace CarCareTracker.Controllers { foreach (int reminderRecordId in collisionRecord.ReminderRecordId) { - PushbackRecurringReminderRecordWithChecks(reminderRecordId); + PushbackRecurringReminderRecordWithChecks(reminderRecordId, DateTime.Parse(collisionRecord.Date), collisionRecord.Mileage); } } var result = _collisionRecordDataAccess.SaveCollisionRecordToVehicle(collisionRecord.ToCollisionRecord()); @@ -1038,7 +1038,7 @@ namespace CarCareTracker.Controllers { foreach (int reminderRecordId in taxRecord.ReminderRecordId) { - PushbackRecurringReminderRecordWithChecks(reminderRecordId); + PushbackRecurringReminderRecordWithChecks(reminderRecordId, DateTime.Parse(taxRecord.Date), null); } } var result = _taxRecordDataAccess.SaveTaxRecordToVehicle(taxRecord.ToTaxRecord()); @@ -1600,7 +1600,7 @@ namespace CarCareTracker.Controllers //update based on recurring intervals. //pull reminderRecord based on ID var existingReminder = _reminderRecordDataAccess.GetReminderRecordById(reminderRecord.Id); - existingReminder = _reminderHelper.GetUpdatedRecurringReminderRecord(existingReminder); + existingReminder = _reminderHelper.GetUpdatedRecurringReminderRecord(existingReminder, null, null); //save to db. _reminderRecordDataAccess.SaveReminderRecordToVehicle(existingReminder); //set urgency to not urgent so it gets excluded in count. @@ -1641,17 +1641,17 @@ namespace CarCareTracker.Controllers [HttpPost] public IActionResult PushbackRecurringReminderRecord(int reminderRecordId) { - var result = PushbackRecurringReminderRecordWithChecks(reminderRecordId); + var result = PushbackRecurringReminderRecordWithChecks(reminderRecordId, null, null); return Json(result); } - private bool PushbackRecurringReminderRecordWithChecks(int reminderRecordId) + private bool PushbackRecurringReminderRecordWithChecks(int reminderRecordId, DateTime? currentDate, int? currentMileage) { try { var existingReminder = _reminderRecordDataAccess.GetReminderRecordById(reminderRecordId); if (existingReminder is not null && existingReminder.Id != default && existingReminder.IsRecurring) { - existingReminder = _reminderHelper.GetUpdatedRecurringReminderRecord(existingReminder); + existingReminder = _reminderHelper.GetUpdatedRecurringReminderRecord(existingReminder, currentDate, currentMileage); //save to db. var reminderUpdateResult = _reminderRecordDataAccess.SaveReminderRecordToVehicle(existingReminder); if (!reminderUpdateResult) @@ -1774,7 +1774,7 @@ namespace CarCareTracker.Controllers { foreach (int reminderRecordId in upgradeRecord.ReminderRecordId) { - PushbackRecurringReminderRecordWithChecks(reminderRecordId); + PushbackRecurringReminderRecordWithChecks(reminderRecordId, DateTime.Parse(upgradeRecord.Date), upgradeRecord.Mileage); } } var result = _upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(upgradeRecord.ToUpgradeRecord()); @@ -2231,7 +2231,7 @@ namespace CarCareTracker.Controllers //push back any reminders if (existingRecord.ReminderRecordId != default) { - PushbackRecurringReminderRecordWithChecks(existingRecord.ReminderRecordId); + PushbackRecurringReminderRecordWithChecks(existingRecord.ReminderRecordId, DateTime.Now, odometer); } } return Json(result); diff --git a/Helper/ReminderHelper.cs b/Helper/ReminderHelper.cs index 2dc1932..6307109 100644 --- a/Helper/ReminderHelper.cs +++ b/Helper/ReminderHelper.cs @@ -4,7 +4,7 @@ namespace CarCareTracker.Helper { public interface IReminderHelper { - ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder); + ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, int? currentMileage); List GetReminderRecordViewModels(List reminders, int currentMileage, DateTime dateCompare); } public class ReminderHelper: IReminderHelper @@ -14,46 +14,48 @@ namespace CarCareTracker.Helper { _config = config; } - public ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder) + public ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, int? currentMileage) { + var newDate = currentDate ?? existingReminder.Date; + var newMileage = currentMileage ?? existingReminder.Mileage; if (existingReminder.Metric == ReminderMetric.Both) { if (existingReminder.ReminderMonthInterval != ReminderMonthInterval.Other) { - existingReminder.Date = existingReminder.Date.AddMonths((int)existingReminder.ReminderMonthInterval); + existingReminder.Date = newDate.AddMonths((int)existingReminder.ReminderMonthInterval); } else { - existingReminder.Date = existingReminder.Date.AddMonths(existingReminder.CustomMonthInterval); + existingReminder.Date = newDate.Date.AddMonths(existingReminder.CustomMonthInterval); } if (existingReminder.ReminderMileageInterval != ReminderMileageInterval.Other) { - existingReminder.Mileage += (int)existingReminder.ReminderMileageInterval; + existingReminder.Mileage = newMileage + (int)existingReminder.ReminderMileageInterval; } else { - existingReminder.Mileage += existingReminder.CustomMileageInterval; + existingReminder.Mileage = newMileage + existingReminder.CustomMileageInterval; } } else if (existingReminder.Metric == ReminderMetric.Odometer) { if (existingReminder.ReminderMileageInterval != ReminderMileageInterval.Other) { - existingReminder.Mileage += (int)existingReminder.ReminderMileageInterval; + existingReminder.Mileage = newMileage + (int)existingReminder.ReminderMileageInterval; } else { - existingReminder.Mileage += existingReminder.CustomMileageInterval; + existingReminder.Mileage = newMileage + existingReminder.CustomMileageInterval; } } else if (existingReminder.Metric == ReminderMetric.Date) { if (existingReminder.ReminderMonthInterval != ReminderMonthInterval.Other) { - existingReminder.Date = existingReminder.Date.AddMonths((int)existingReminder.ReminderMonthInterval); + existingReminder.Date = newDate.AddMonths((int)existingReminder.ReminderMonthInterval); } else { - existingReminder.Date = existingReminder.Date.AddMonths(existingReminder.CustomMonthInterval); + existingReminder.Date = newDate.AddMonths(existingReminder.CustomMonthInterval); } } return existingReminder;