diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index efc653d..83ac9b4 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -551,6 +551,16 @@ namespace CarCareTracker.Controllers [HttpPost] public IActionResult SaveGasRecordToVehicleId(GasRecordInput gasRecord) { + if (gasRecord.Id == default && _config.GetUserConfig(User).EnableAutoOdometerInsert) + { + _odometerRecordDataAccess.SaveOdometerRecordToVehicle(new OdometerRecord + { + Date = DateTime.Parse(gasRecord.Date), + VehicleId = gasRecord.VehicleId, + Mileage = gasRecord.Mileage, + Notes = $"Auto Insert From Gas Record. {gasRecord.Notes}" + }); + } gasRecord.Files = gasRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); var result = _gasRecordDataAccess.SaveGasRecordToVehicle(gasRecord.ToGasRecord()); return Json(result); @@ -612,6 +622,16 @@ namespace CarCareTracker.Controllers [HttpPost] public IActionResult SaveServiceRecordToVehicleId(ServiceRecordInput serviceRecord) { + if (serviceRecord.Id == default && _config.GetUserConfig(User).EnableAutoOdometerInsert) + { + _odometerRecordDataAccess.SaveOdometerRecordToVehicle(new OdometerRecord + { + Date = DateTime.Parse(serviceRecord.Date), + VehicleId = serviceRecord.VehicleId, + Mileage = serviceRecord.Mileage, + Notes = $"Auto Insert From Service Record: {serviceRecord.Description}" + }); + } //move files from temp. serviceRecord.Files = serviceRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); var result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(serviceRecord.ToServiceRecord()); @@ -671,6 +691,16 @@ namespace CarCareTracker.Controllers [HttpPost] public IActionResult SaveCollisionRecordToVehicleId(CollisionRecordInput collisionRecord) { + if (collisionRecord.Id == default && _config.GetUserConfig(User).EnableAutoOdometerInsert) + { + _odometerRecordDataAccess.SaveOdometerRecordToVehicle(new OdometerRecord + { + Date = DateTime.Parse(collisionRecord.Date), + VehicleId = collisionRecord.VehicleId, + Mileage = collisionRecord.Mileage, + Notes = $"Auto Insert From Repair Record: {collisionRecord.Description}" + }); + } //move files from temp. collisionRecord.Files = collisionRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); var result = _collisionRecordDataAccess.SaveCollisionRecordToVehicle(collisionRecord.ToCollisionRecord()); @@ -1181,6 +1211,16 @@ namespace CarCareTracker.Controllers [HttpPost] public IActionResult SaveUpgradeRecordToVehicleId(UpgradeRecordInput upgradeRecord) { + if (upgradeRecord.Id == default && _config.GetUserConfig(User).EnableAutoOdometerInsert) + { + _odometerRecordDataAccess.SaveOdometerRecordToVehicle(new OdometerRecord + { + Date = DateTime.Parse(upgradeRecord.Date), + VehicleId = upgradeRecord.VehicleId, + Mileage = upgradeRecord.Mileage, + Notes = $"Auto Insert From Upgrade Record: {upgradeRecord.Description}" + }); + } //move files from temp. upgradeRecord.Files = upgradeRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); var result = _upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(upgradeRecord.ToUpgradeRecord()); @@ -1381,6 +1421,16 @@ namespace CarCareTracker.Controllers var result = _planRecordDataAccess.SavePlanRecordToVehicle(existingRecord); if (planProgress == PlanProgress.Done) { + if (_config.GetUserConfig(User).EnableAutoOdometerInsert) + { + _odometerRecordDataAccess.SaveOdometerRecordToVehicle(new OdometerRecord + { + Date = DateTime.Now, + VehicleId = existingRecord.VehicleId, + Mileage = odometer, + Notes = $"Auto Insert From Plan Record: {existingRecord.Description}" + }); + } //convert plan record to service/upgrade/repair record. if (existingRecord.ImportMode == ImportMode.ServiceRecord) { diff --git a/Helper/ConfigHelper.cs b/Helper/ConfigHelper.cs index 065fdf6..87c7fae 100644 --- a/Helper/ConfigHelper.cs +++ b/Helper/ConfigHelper.cs @@ -96,6 +96,7 @@ namespace CarCareTracker.Helper UseUKMPG = bool.Parse(_config[nameof(UserConfig.UseUKMPG)]), UseThreeDecimalGasCost = bool.Parse(_config[nameof(UserConfig.UseThreeDecimalGasCost)]), EnableAutoReminderRefresh = bool.Parse(_config[nameof(UserConfig.EnableAutoReminderRefresh)]), + EnableAutoOdometerInsert = bool.Parse(_config[nameof(UserConfig.EnableAutoOdometerInsert)]), VisibleTabs = _config.GetSection("VisibleTabs").Get>(), DefaultTab = (ImportMode)int.Parse(_config[nameof(UserConfig.DefaultTab)]) }; diff --git a/Models/UserConfig.cs b/Models/UserConfig.cs index 61f83ed..c73698c 100644 --- a/Models/UserConfig.cs +++ b/Models/UserConfig.cs @@ -11,6 +11,7 @@ public bool UseUKMPG {get;set;} public bool UseThreeDecimalGasCost { get; set; } public bool EnableAutoReminderRefresh { get; set; } + public bool EnableAutoOdometerInsert { 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 d30f9e4..f899ca1 100644 --- a/Views/Home/_Settings.cshtml +++ b/Views/Home/_Settings.cshtml @@ -39,6 +39,10 @@ +
+ + +
@if (User.IsInRole(nameof(UserData.IsRootUser))) {
@@ -208,6 +212,7 @@ useUKMpg: $("#useUKMPG").is(":checked"), useThreeDecimalGasCost: $("#useThreeDecimal").is(":checked"), enableAutoReminderRefresh: $("#enableAutoReminderRefresh").is(":checked"), + enableAutoOdometerInsert: $("#enableAutoOdometerInsert").is(":checked"), visibleTabs: visibleTabs, defaultTab: defaultTab } diff --git a/Views/Vehicle/_OdometerRecords.cshtml b/Views/Vehicle/_OdometerRecords.cshtml index 4c37fa0..bc869ba 100644 --- a/Views/Vehicle/_OdometerRecords.cshtml +++ b/Views/Vehicle/_OdometerRecords.cshtml @@ -52,7 +52,7 @@ @odometerRecord.Date.ToShortDateString() @odometerRecord.Mileage - @CarCareTracker.Helper.StaticHelper.TruncateStrings(odometerRecord.Notes) + @CarCareTracker.Helper.StaticHelper.TruncateStrings(odometerRecord.Notes, 75) } diff --git a/appsettings.json b/appsettings.json index f24bc29..e99b182 100644 --- a/appsettings.json +++ b/appsettings.json @@ -12,11 +12,12 @@ "UseDescending": false, "EnableAuth": false, "HideZero": false, - "EnableAutoReminderRefresh": false, + "EnableAutoReminderRefresh": false, + "EnableAutoOdometerInsert": false, "UseUKMPG": false, "UseThreeDecimalGasCost": true, "VisibleTabs": [ 0, 1, 4, 2, 3, 6, 5, 8 ], - "DefaultTab": 8, + "DefaultTab": 8, "UserNameHash": "", "UserPasswordHash": "" }