From d4896a7607d581c930e87beb54f62700fb286428 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Tue, 23 Jan 2024 08:57:11 -0700 Subject: [PATCH] added setting to disable auto reminder refresh for recurring past due reminders. --- Controllers/VehicleController.cs | 28 +++++++++++++++------------ Helper/ConfigHelper.cs | 1 + Models/UserConfig.cs | 1 + Views/Home/_Settings.cshtml | 5 +++++ Views/Vehicle/_ReminderRecords.cshtml | 4 ++-- appsettings.json | 1 + 6 files changed, 26 insertions(+), 14 deletions(-) diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index dae6b74..efc653d 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -1071,20 +1071,24 @@ namespace CarCareTracker.Controllers public IActionResult GetVehicleHaveUrgentOrPastDueReminders(int vehicleId) { var result = GetRemindersAndUrgency(vehicleId, DateTime.Now); - //check for past due reminders that are eligible for recurring. - var pastDueAndRecurring = result.Where(x => x.Urgency == ReminderUrgency.PastDue && x.IsRecurring); - if (pastDueAndRecurring.Any()) + //check if user wants auto-refresh past-due reminders + if (_config.GetUserConfig(User).EnableAutoReminderRefresh) { - foreach (ReminderRecordViewModel reminderRecord in pastDueAndRecurring) + //check for past due reminders that are eligible for recurring. + var pastDueAndRecurring = result.Where(x => x.Urgency == ReminderUrgency.PastDue && x.IsRecurring); + if (pastDueAndRecurring.Any()) { - //update based on recurring intervals. - //pull reminderRecord based on ID - var existingReminder = _reminderRecordDataAccess.GetReminderRecordById(reminderRecord.Id); - existingReminder = _reminderHelper.GetUpdatedRecurringReminderRecord(existingReminder); - //save to db. - _reminderRecordDataAccess.SaveReminderRecordToVehicle(existingReminder); - //set urgency to not urgent so it gets excluded in count. - reminderRecord.Urgency = ReminderUrgency.NotUrgent; + foreach (ReminderRecordViewModel reminderRecord in pastDueAndRecurring) + { + //update based on recurring intervals. + //pull reminderRecord based on ID + var existingReminder = _reminderRecordDataAccess.GetReminderRecordById(reminderRecord.Id); + existingReminder = _reminderHelper.GetUpdatedRecurringReminderRecord(existingReminder); + //save to db. + _reminderRecordDataAccess.SaveReminderRecordToVehicle(existingReminder); + //set urgency to not urgent so it gets excluded in count. + reminderRecord.Urgency = ReminderUrgency.NotUrgent; + } } } //check for very urgent or past due reminders that were not eligible for recurring. diff --git a/Helper/ConfigHelper.cs b/Helper/ConfigHelper.cs index 6d7b50c..065fdf6 100644 --- a/Helper/ConfigHelper.cs +++ b/Helper/ConfigHelper.cs @@ -95,6 +95,7 @@ namespace CarCareTracker.Helper HideZero = bool.Parse(_config[nameof(UserConfig.HideZero)]), UseUKMPG = bool.Parse(_config[nameof(UserConfig.UseUKMPG)]), UseThreeDecimalGasCost = bool.Parse(_config[nameof(UserConfig.UseThreeDecimalGasCost)]), + EnableAutoReminderRefresh = bool.Parse(_config[nameof(UserConfig.EnableAutoReminderRefresh)]), VisibleTabs = _config.GetSection("VisibleTabs").Get>(), DefaultTab = (ImportMode)int.Parse(_config[nameof(UserConfig.DefaultTab)]) }; diff --git a/Models/UserConfig.cs b/Models/UserConfig.cs index 7029050..61f83ed 100644 --- a/Models/UserConfig.cs +++ b/Models/UserConfig.cs @@ -10,6 +10,7 @@ public bool HideZero { get; set; } public bool UseUKMPG {get;set;} public bool UseThreeDecimalGasCost { get; set; } + public bool EnableAutoReminderRefresh { get; set; } public string UserNameHash { get; set; } public string UserPasswordHash { get; set;} public List VisibleTabs { get; set; } = new List() { diff --git a/Views/Home/_Settings.cshtml b/Views/Home/_Settings.cshtml index c43578d..d30f9e4 100644 --- a/Views/Home/_Settings.cshtml +++ b/Views/Home/_Settings.cshtml @@ -35,6 +35,10 @@ +
+ + +
@if (User.IsInRole(nameof(UserData.IsRootUser))) {
@@ -203,6 +207,7 @@ hideZero: $("#hideZero").is(":checked"), useUKMpg: $("#useUKMPG").is(":checked"), useThreeDecimalGasCost: $("#useThreeDecimal").is(":checked"), + enableAutoReminderRefresh: $("#enableAutoReminderRefresh").is(":checked"), visibleTabs: visibleTabs, defaultTab: defaultTab } diff --git a/Views/Vehicle/_ReminderRecords.cshtml b/Views/Vehicle/_ReminderRecords.cshtml index e748ca7..8c592c0 100644 --- a/Views/Vehicle/_ReminderRecords.cshtml +++ b/Views/Vehicle/_ReminderRecords.cshtml @@ -1,6 +1,6 @@ @model List @{ - var hasRefresh = Model.Where(x => x.Urgency == ReminderUrgency.VeryUrgent && x.IsRecurring).Any(); + var hasRefresh = Model.Where(x => (x.Urgency == ReminderUrgency.VeryUrgent || x.Urgency == ReminderUrgency.PastDue) && x.IsRecurring).Any(); }
@@ -74,7 +74,7 @@ @if (hasRefresh) { - @if(reminderRecord.Urgency == ReminderUrgency.VeryUrgent && reminderRecord.IsRecurring) + @if((reminderRecord.Urgency == ReminderUrgency.VeryUrgent || reminderRecord.Urgency == ReminderUrgency.PastDue) && reminderRecord.IsRecurring) { } diff --git a/appsettings.json b/appsettings.json index 5bb3453..f24bc29 100644 --- a/appsettings.json +++ b/appsettings.json @@ -12,6 +12,7 @@ "UseDescending": false, "EnableAuth": false, "HideZero": false, + "EnableAutoReminderRefresh": false, "UseUKMPG": false, "UseThreeDecimalGasCost": true, "VisibleTabs": [ 0, 1, 4, 2, 3, 6, 5, 8 ],