diff --git a/Controllers/Vehicle/GasController.cs b/Controllers/Vehicle/GasController.cs index 46e29aa..dffdf8f 100644 --- a/Controllers/Vehicle/GasController.cs +++ b/Controllers/Vehicle/GasController.cs @@ -38,7 +38,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), gasRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } gasRecord.Files = gasRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); var convertedRecord = gasRecord.ToGasRecord(); @@ -58,7 +58,7 @@ namespace CarCareTracker.Controllers Files = StaticHelper.CreateAttachmentFromRecord(ImportMode.GasRecord, convertedRecord.Id, $"Gas Record - {gasRecord.Mileage.ToString()}") }); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [TypeFilter(typeof(CollaboratorFilter))] [HttpGet] @@ -104,20 +104,20 @@ namespace CarCareTracker.Controllers }; return PartialView("Gas/_GasModal", viewModel); } - private bool DeleteGasRecordWithChecks(int gasRecordId) + private OperationResponse DeleteGasRecordWithChecks(int gasRecordId) { var existingRecord = _gasRecordDataAccess.GetGasRecordById(gasRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } var result = _gasRecordDataAccess.DeleteGasRecordById(existingRecord.Id); if (result) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromGasRecord(existingRecord, "gasrecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteGasRecordById(int gasRecordId) diff --git a/Controllers/Vehicle/InspectionController.cs b/Controllers/Vehicle/InspectionController.cs index aa46ef8..7d961bd 100644 --- a/Controllers/Vehicle/InspectionController.cs +++ b/Controllers/Vehicle/InspectionController.cs @@ -89,31 +89,31 @@ namespace CarCareTracker.Controllers var result = _inspectionRecordTemplateDataAccess.SaveInspectionReportTemplateToVehicle(inspectionRecordTemplate); return Json(result); } - private bool DeleteInspectionRecordTemplateWithChecks(int inspectionRecordTemplateId) + private OperationResponse DeleteInspectionRecordTemplateWithChecks(int inspectionRecordTemplateId) { var existingRecord = _inspectionRecordTemplateDataAccess.GetInspectionRecordTemplateById(inspectionRecordTemplateId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } var result = _inspectionRecordTemplateDataAccess.DeleteInspectionRecordTemplateById(existingRecord.Id); - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } - private bool DeleteInspectionRecordWithChecks(int inspectionRecordId) + private OperationResponse DeleteInspectionRecordWithChecks(int inspectionRecordId) { var existingRecord = _inspectionRecordDataAccess.GetInspectionRecordById(inspectionRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } var result = _inspectionRecordDataAccess.DeleteInspectionRecordById(existingRecord.Id); if (result) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromInspectionRecord(existingRecord, "inspectionrecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteInspectionRecordTemplateById(int inspectionRecordTemplateId) @@ -134,7 +134,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Edit)) { - return Redirect("/Error/Unauthorized"); + return Json(OperationResponse.Failed("Access Denied")); } //populate date existingRecord.Date = DateTime.Now.ToShortDateString(); @@ -166,7 +166,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), result.VehicleId, HouseholdPermission.View)) { - return Redirect("/Error/Unauthorized"); + return Json(OperationResponse.Failed("Access Denied")); } return PartialView("Inspection/_InspectionRecordViewModal", result); } @@ -176,7 +176,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), inspectionRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //move files from temp. inspectionRecord.Files = inspectionRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); @@ -246,7 +246,7 @@ namespace CarCareTracker.Controllers } } } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpPost] public IActionResult UpdateInspectionRecord(InspectionRecordInput inspectionRecord) @@ -255,7 +255,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } existingRecord.Tags = inspectionRecord.Tags; existingRecord.Files = inspectionRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); @@ -264,7 +264,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromInspectionRecord(existingRecord, "inspectionrecord.update", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } } } diff --git a/Controllers/Vehicle/NoteController.cs b/Controllers/Vehicle/NoteController.cs index c9a660a..de17d78 100644 --- a/Controllers/Vehicle/NoteController.cs +++ b/Controllers/Vehicle/NoteController.cs @@ -29,7 +29,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), note.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } note.Files = note.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); bool isCreate = note.Id == default; //needed here since Notes don't use an input object. @@ -38,7 +38,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromNoteRecord(note, isCreate ? "noterecord.add" : "noterecord.update", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetAddNotePartialView() @@ -58,20 +58,20 @@ namespace CarCareTracker.Controllers } return PartialView("Note/_NoteModal", result); } - private bool DeleteNoteWithChecks(int noteId) + private OperationResponse DeleteNoteWithChecks(int noteId) { var existingRecord = _noteDataAccess.GetNoteById(noteId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } var result = _noteDataAccess.DeleteNoteById(existingRecord.Id); if (result) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromNoteRecord(existingRecord, "noterecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteNoteById(int noteId) @@ -86,6 +86,10 @@ namespace CarCareTracker.Controllers foreach (int noteId in noteIds) { var existingNote = _noteDataAccess.GetNoteById(noteId); + if (!_userLogic.UserCanEditVehicle(GetUserID(), existingNote.VehicleId, HouseholdPermission.Edit)) + { + return Json(OperationResponse.Failed("Access Denied")); + } if (isToggle) { existingNote.Pinned = !existingNote.Pinned; @@ -96,7 +100,7 @@ namespace CarCareTracker.Controllers } result = _noteDataAccess.SaveNoteToVehicle(existingNote); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } } } diff --git a/Controllers/Vehicle/OdometerController.cs b/Controllers/Vehicle/OdometerController.cs index 9f52b2c..a37aea7 100644 --- a/Controllers/Vehicle/OdometerController.cs +++ b/Controllers/Vehicle/OdometerController.cs @@ -7,13 +7,17 @@ namespace CarCareTracker.Controllers { public partial class VehicleController { - [TypeFilter(typeof(CollaboratorFilter))] [HttpPost] public IActionResult ForceRecalculateDistanceByVehicleId(int vehicleId) { + //security check + if (!_userLogic.UserCanEditVehicle(GetUserID(), vehicleId, HouseholdPermission.Edit)) + { + return Json(OperationResponse.Failed("Access Denied")); + } var result = _odometerRecordDataAccess.GetOdometerRecordsByVehicleId(vehicleId); result = _odometerLogic.AutoConvertOdometerRecord(result); - return Json(result.Any()); + return Json(OperationResponse.Conditional(result.Any(), string.Empty, StaticHelper.GenericErrorMessage)); } [TypeFilter(typeof(CollaboratorFilter))] [HttpGet] @@ -42,7 +46,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), odometerRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //move files from temp. odometerRecord.Files = odometerRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); @@ -52,7 +56,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromOdometerRecord(convertedRecord, odometerRecord.Id == default ? "odometerrecord.add" : "odometerrecord.update", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [TypeFilter(typeof(CollaboratorFilter))] [HttpGet] @@ -88,6 +92,11 @@ namespace CarCareTracker.Controllers foreach (int recordId in editModel.RecordIds) { var existingRecord = _odometerRecordDataAccess.GetOdometerRecordById(recordId); + //security check + if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Edit)) + { + return Json(OperationResponse.Failed("Access Denied")); + } if (dateIsEdited) { existingRecord.Date = editModel.EditRecord.Date; @@ -126,7 +135,7 @@ namespace CarCareTracker.Controllers } result = _odometerRecordDataAccess.SaveOdometerRecordToVehicle(existingRecord); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetOdometerRecordForEditById(int odometerRecordId) @@ -152,20 +161,20 @@ namespace CarCareTracker.Controllers }; return PartialView("Odometer/_OdometerRecordModal", convertedResult); } - private bool DeleteOdometerRecordWithChecks(int odometerRecordId) + private OperationResponse DeleteOdometerRecordWithChecks(int odometerRecordId) { var existingRecord = _odometerRecordDataAccess.GetOdometerRecordById(odometerRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } var result = _odometerRecordDataAccess.DeleteOdometerRecordById(existingRecord.Id); if (result) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromOdometerRecord(existingRecord, "odometerrecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteOdometerRecordById(int odometerRecordId) diff --git a/Controllers/Vehicle/PlanController.cs b/Controllers/Vehicle/PlanController.cs index e5ec66d..805f3b1 100644 --- a/Controllers/Vehicle/PlanController.cs +++ b/Controllers/Vehicle/PlanController.cs @@ -20,7 +20,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), planRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //populate createdDate if (planRecord.Id == default) @@ -47,7 +47,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromPlanRecord(planRecord.ToPlanRecord(), planRecord.Id == default ? "planrecord.add" : "planrecord.update", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpPost] public IActionResult SavePlanRecordTemplateToVehicleId(PlanRecordInput planRecord) @@ -65,7 +65,7 @@ namespace CarCareTracker.Controllers } planRecord.Files = planRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); var result = _planRecordTemplateDataAccess.SavePlanRecordTemplateToVehicle(planRecord); - return Json(OperationResponse.Conditional(result, "Template Added", string.Empty)); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [TypeFilter(typeof(CollaboratorFilter))] [HttpGet] @@ -80,15 +80,15 @@ namespace CarCareTracker.Controllers var existingRecord = _planRecordTemplateDataAccess.GetPlanRecordTemplateById(planRecordTemplateId); if (existingRecord.Id == default) { - return Json(false); + return Json(OperationResponse.Failed(StaticHelper.GenericErrorMessage)); } //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } var result = _planRecordTemplateDataAccess.DeletePlanRecordTemplateById(planRecordTemplateId); - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult OrderPlanSupplies(int planRecordTemplateId) @@ -161,7 +161,7 @@ namespace CarCareTracker.Controllers } } var result = _planRecordDataAccess.SavePlanRecordToVehicle(existingRecord.ToPlanRecord()); - return Json(OperationResponse.Conditional(result, "Plan Record Added", string.Empty)); + return Json(OperationResponse.Conditional(result, "Plan Record Added", StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetAddPlanRecordPartialView() @@ -183,13 +183,13 @@ namespace CarCareTracker.Controllers { if (planRecordId == default) { - return Json(false); + return Json(OperationResponse.Failed(StaticHelper.GenericErrorMessage)); } var existingRecord = _planRecordDataAccess.GetPlanRecordById(planRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } existingRecord.Progress = planProgress; existingRecord.DateModified = DateTime.Now; @@ -267,7 +267,7 @@ namespace CarCareTracker.Controllers PushbackRecurringReminderRecordWithChecks(existingRecord.ReminderRecordId, DateTime.Now, odometer); } } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetPlanRecordTemplateForEditById(int planRecordTemplateId) @@ -316,7 +316,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //restore any requisitioned supplies if it has not been converted to other record types. if (existingRecord.RequisitionHistory.Any() && existingRecord.Progress != PlanProgress.Done) @@ -328,7 +328,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromPlanRecord(existingRecord, "planrecord.delete", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } } } diff --git a/Controllers/Vehicle/ReminderController.cs b/Controllers/Vehicle/ReminderController.cs index 028f1f0..fd790cf 100644 --- a/Controllers/Vehicle/ReminderController.cs +++ b/Controllers/Vehicle/ReminderController.cs @@ -18,7 +18,7 @@ namespace CarCareTracker.Controllers { var result = GetRemindersAndUrgency(vehicleId, DateTime.Now); //check if user wants auto-refresh past-due reminders - if (_config.GetUserConfig(User).EnableAutoReminderRefresh) + if (_config.GetUserConfig(User).EnableAutoReminderRefresh && _userLogic.UserCanEditVehicle(GetUserID(), vehicleId, HouseholdPermission.Edit)) { //check for past due reminders that are eligible for recurring. var pastDueAndRecurring = result.Where(x => x.Urgency == ReminderUrgency.PastDue && x.IsRecurring); @@ -75,7 +75,7 @@ namespace CarCareTracker.Controllers var result = PushbackRecurringReminderRecordWithChecks(reminderRecordId, null, null); return Json(result); } - private bool PushbackRecurringReminderRecordWithChecks(int reminderRecordId, DateTime? currentDate, int? currentMileage) + private OperationResponse PushbackRecurringReminderRecordWithChecks(int reminderRecordId, DateTime? currentDate, int? currentMileage) { try { @@ -85,7 +85,7 @@ namespace CarCareTracker.Controllers //security check if (!_userLogic.UserCanEditVehicle(GetUserID(), existingReminder.VehicleId, HouseholdPermission.Edit)) { - return false; + return OperationResponse.Failed("Access Denied"); } existingReminder = _reminderHelper.GetUpdatedRecurringReminderRecord(existingReminder, currentDate, currentMileage); //save to db. @@ -93,20 +93,20 @@ namespace CarCareTracker.Controllers if (!reminderUpdateResult) { _logger.LogError("Unable to update reminder either because the reminder no longer exists or is no longer recurring"); - return false; + return OperationResponse.Failed("Unable to update reminder either because the reminder no longer exists or is no longer recurring"); } - return true; + return OperationResponse.Succeed(); } else { _logger.LogError("Unable to update reminder because it no longer exists."); - return false; + return OperationResponse.Failed("Unable to update reminder because it no longer exists."); } } catch (Exception ex) { _logger.LogError(ex.Message); - return false; + return OperationResponse.Failed(StaticHelper.GenericErrorMessage); } } [HttpPost] @@ -115,14 +115,14 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), reminderRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } var result = _reminderRecordDataAccess.SaveReminderRecordToVehicle(reminderRecord.ToReminderRecord()); if (result) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromReminderRecord(reminderRecord.ToReminderRecord(), reminderRecord.Id == default ? "reminderrecord.add" : "reminderrecord.update", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpPost] public IActionResult GetAddReminderRecordPartialView(ReminderRecordInput? reminderModel) @@ -168,20 +168,20 @@ namespace CarCareTracker.Controllers }; return PartialView("Reminder/_ReminderRecordModal", convertedResult); } - private bool DeleteReminderRecordWithChecks(int reminderRecordId) + private OperationResponse DeleteReminderRecordWithChecks(int reminderRecordId) { var existingRecord = _reminderRecordDataAccess.GetReminderRecordById(reminderRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } var result = _reminderRecordDataAccess.DeleteReminderRecordById(existingRecord.Id); if (result) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromReminderRecord(existingRecord, "reminderrecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteReminderRecordById(int reminderRecordId) diff --git a/Controllers/Vehicle/RepairController.cs b/Controllers/Vehicle/RepairController.cs index ff44480..268aa9e 100644 --- a/Controllers/Vehicle/RepairController.cs +++ b/Controllers/Vehicle/RepairController.cs @@ -29,7 +29,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), collisionRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //move files from temp. collisionRecord.Files = collisionRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); @@ -70,7 +70,7 @@ namespace CarCareTracker.Controllers Files = StaticHelper.CreateAttachmentFromRecord(ImportMode.RepairRecord, convertedRecord.Id, convertedRecord.Description) }); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetAddCollisionRecordPartialView() @@ -103,13 +103,13 @@ namespace CarCareTracker.Controllers }; return PartialView("Collision/_CollisionRecordModal", convertedResult); } - private bool DeleteCollisionRecordWithChecks(int collisionRecordId) + private OperationResponse DeleteCollisionRecordWithChecks(int collisionRecordId) { var existingRecord = _collisionRecordDataAccess.GetCollisionRecordById(collisionRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } //restore any requisitioned supplies. if (existingRecord.RequisitionHistory.Any()) @@ -121,7 +121,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromGenericRecord(existingRecord, "repairrecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteCollisionRecordById(int collisionRecordId) diff --git a/Controllers/Vehicle/ServiceController.cs b/Controllers/Vehicle/ServiceController.cs index 452d886..b8cf73e 100644 --- a/Controllers/Vehicle/ServiceController.cs +++ b/Controllers/Vehicle/ServiceController.cs @@ -29,7 +29,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), serviceRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //move files from temp. serviceRecord.Files = serviceRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); @@ -70,7 +70,7 @@ namespace CarCareTracker.Controllers Files = StaticHelper.CreateAttachmentFromRecord(ImportMode.ServiceRecord, convertedRecord.Id, convertedRecord.Description) }); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetAddServiceRecordPartialView() @@ -103,13 +103,13 @@ namespace CarCareTracker.Controllers }; return PartialView("Service/_ServiceRecordModal", convertedResult); } - private bool DeleteServiceRecordWithChecks(int serviceRecordId) + private OperationResponse DeleteServiceRecordWithChecks(int serviceRecordId) { var existingRecord = _serviceRecordDataAccess.GetServiceRecordById(serviceRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } //restore any requisitioned supplies. if (existingRecord.RequisitionHistory.Any()) @@ -121,7 +121,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromGenericRecord(existingRecord, "servicerecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteServiceRecordById(int serviceRecordId) diff --git a/Controllers/Vehicle/SupplyController.cs b/Controllers/Vehicle/SupplyController.cs index 1d14be8..de041fc 100644 --- a/Controllers/Vehicle/SupplyController.cs +++ b/Controllers/Vehicle/SupplyController.cs @@ -150,7 +150,7 @@ namespace CarCareTracker.Controllers //security check only if not editing shop supply. if (!_userLogic.UserCanEditVehicle(GetUserID(), supplyRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } } //move files from temp. @@ -160,7 +160,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromSupplyRecord(supplyRecord.ToSupplyRecord(), supplyRecord.Id == default ? "supplyrecord.add" : "supplyrecord.update", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetAddSupplyRecordPartialView() @@ -203,7 +203,7 @@ namespace CarCareTracker.Controllers }; return PartialView("Supply/_SupplyRecordModal", convertedResult); } - private bool DeleteSupplyRecordWithChecks(int supplyRecordId) + private OperationResponse DeleteSupplyRecordWithChecks(int supplyRecordId) { var existingRecord = _supplyRecordDataAccess.GetSupplyRecordById(supplyRecordId); if (existingRecord.VehicleId != default) @@ -211,7 +211,7 @@ namespace CarCareTracker.Controllers //security check only if not editing shop supply. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } } var result = _supplyRecordDataAccess.DeleteSupplyRecordById(existingRecord.Id); @@ -219,7 +219,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromSupplyRecord(existingRecord, "supplyrecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteSupplyRecordById(int supplyRecordId) diff --git a/Controllers/Vehicle/TaxController.cs b/Controllers/Vehicle/TaxController.cs index 2b76507..5a45b46 100644 --- a/Controllers/Vehicle/TaxController.cs +++ b/Controllers/Vehicle/TaxController.cs @@ -44,7 +44,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), taxRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //move files from temp. taxRecord.Files = taxRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); @@ -62,7 +62,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromTaxRecord(taxRecord.ToTaxRecord(), taxRecord.Id == default ? "taxrecord.add" : "taxrecord.update", User.Identity.Name)); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetAddTaxRecordPartialView() @@ -97,20 +97,20 @@ namespace CarCareTracker.Controllers }; return PartialView("Tax/_TaxRecordModal", convertedResult); } - private bool DeleteTaxRecordWithChecks(int taxRecordId) + private OperationResponse DeleteTaxRecordWithChecks(int taxRecordId) { var existingRecord = _taxRecordDataAccess.GetTaxRecordById(taxRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } var result = _taxRecordDataAccess.DeleteTaxRecordById(existingRecord.Id); if (result) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromTaxRecord(existingRecord, "taxrecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteTaxRecordById(int taxRecordId) diff --git a/Controllers/Vehicle/UpgradeController.cs b/Controllers/Vehicle/UpgradeController.cs index 6995b5f..ea01574 100644 --- a/Controllers/Vehicle/UpgradeController.cs +++ b/Controllers/Vehicle/UpgradeController.cs @@ -29,7 +29,7 @@ namespace CarCareTracker.Controllers //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), upgradeRecord.VehicleId, HouseholdPermission.Edit)) { - return Json(false); + return Json(OperationResponse.Failed("Access Denied")); } //move files from temp. upgradeRecord.Files = upgradeRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); @@ -70,7 +70,7 @@ namespace CarCareTracker.Controllers Files = StaticHelper.CreateAttachmentFromRecord(ImportMode.UpgradeRecord, convertedRecord.Id, convertedRecord.Description) }); } - return Json(result); + return Json(OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage)); } [HttpGet] public IActionResult GetAddUpgradeRecordPartialView() @@ -103,13 +103,13 @@ namespace CarCareTracker.Controllers }; return PartialView("Upgrade/_UpgradeRecordModal", convertedResult); } - private bool DeleteUpgradeRecordWithChecks(int upgradeRecordId) + private OperationResponse DeleteUpgradeRecordWithChecks(int upgradeRecordId) { var existingRecord = _upgradeRecordDataAccess.GetUpgradeRecordById(upgradeRecordId); //security check. if (!_userLogic.UserCanEditVehicle(GetUserID(), existingRecord.VehicleId, HouseholdPermission.Delete)) { - return false; + return OperationResponse.Failed("Access Denied"); } //restore any requisitioned supplies. if (existingRecord.RequisitionHistory.Any()) @@ -121,7 +121,7 @@ namespace CarCareTracker.Controllers { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.FromGenericRecord(existingRecord, "upgraderecord.delete", User.Identity.Name)); } - return result; + return OperationResponse.Conditional(result, string.Empty, StaticHelper.GenericErrorMessage); } [HttpPost] public IActionResult DeleteUpgradeRecordById(int upgradeRecordId) diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index 2f69b63..6df659e 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -729,7 +729,7 @@ namespace CarCareTracker.Controllers } public IActionResult DeleteRecords(List recordIds, ImportMode importMode) { - bool result = false; + OperationResponse result = OperationResponse.Failed(StaticHelper.GenericErrorMessage); foreach (int recordId in recordIds) { switch (importMode) @@ -766,7 +766,7 @@ namespace CarCareTracker.Controllers break; } } - if (result) + if (result.Success) { StaticHelper.NotifyAsync(_config.GetWebHookUrl(), WebHookPayload.Generic($"Deleted multiple {importMode.ToString()} - Ids: {string.Join(", ", recordIds)}", "bulk.delete", User.Identity.Name, string.Empty)); } diff --git a/appsettings.json b/appsettings.json index 5dd67a7..b0bdcde 100644 --- a/appsettings.json +++ b/appsettings.json @@ -32,7 +32,7 @@ "UseUnitForFuelCost": false, "PreferredGasUnit": "", "UserLanguage": "en_US", - "VisibleTabs": [ 0, 1, 4, 2, 3, 6, 5, 8 ], + "VisibleTabs": [ 8 ], "TabOrder": [ 8, 9, 10, 0, 1, 4, 2, 7, 3, 6, 12, 5 ], "DefaultTab": 8, "UserNameHash": "", diff --git a/wwwroot/js/collisionrecord.js b/wwwroot/js/collisionrecord.js index 6f57a81..463b163 100644 --- a/wwwroot/js/collisionrecord.js +++ b/wwwroot/js/collisionrecord.js @@ -52,13 +52,13 @@ function deleteCollisionRecord(collisionRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteCollisionRecordById?collisionRecordId=${collisionRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddCollisionRecordModal(); successToast("Repair Record Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleCollisionRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -76,7 +76,7 @@ function saveCollisionRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveCollisionRecordToVehicleId', { collisionRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Repair Record Updated" : "Repair Record Added."); hideAddCollisionRecordModal(); saveScrollPosition(); @@ -85,7 +85,7 @@ function saveCollisionRecordToVehicle(isEdit) { setTimeout(function () { showAddReminderModal(formValues); }, 500); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } diff --git a/wwwroot/js/garage.js b/wwwroot/js/garage.js index 9b25a12..8875ee6 100644 --- a/wwwroot/js/garage.js +++ b/wwwroot/js/garage.js @@ -116,12 +116,12 @@ function generateReminderItem(id, urgency, description) { function markDoneCalendarReminderRecord(reminderRecordId, e) { event.stopPropagation(); $.post(`/Vehicle/PushbackRecurringReminderRecord?reminderRecordId=${reminderRecordId}`, function (data) { - if (data) { + if (data.success) { hideCalendarReminderModal(); successToast("Reminder Updated"); getVehicleCalendarEvents(); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } @@ -139,12 +139,12 @@ function deleteCalendarReminderRecord(reminderRecordId, e) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteReminderRecordById?reminderRecordId=${reminderRecordId}`, function (data) { - if (data) { + if (data.success) { hideCalendarReminderModal(); successToast("Reminder Deleted"); getVehicleCalendarEvents(); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { diff --git a/wwwroot/js/gasrecord.js b/wwwroot/js/gasrecord.js index 7797682..a4ed53d 100644 --- a/wwwroot/js/gasrecord.js +++ b/wwwroot/js/gasrecord.js @@ -52,13 +52,13 @@ function deleteGasRecord(gasRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteGasRecordById?gasRecordId=${gasRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddGasRecordModal(); successToast("Gas Record deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleGasRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -76,13 +76,13 @@ function saveGasRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveGasRecordToVehicleId', { gasRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Gas Record Updated" : "Gas Record Added."); hideAddGasRecordModal(); saveScrollPosition(); getVehicleGasRecords(formValues.vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } diff --git a/wwwroot/js/inspectionrecord.js b/wwwroot/js/inspectionrecord.js index 4c729ff..f47478b 100644 --- a/wwwroot/js/inspectionrecord.js +++ b/wwwroot/js/inspectionrecord.js @@ -201,11 +201,11 @@ function deleteInspectionRecordTemplate(inspectionRecordTemplateId) { if (result.isConfirmed) { $.post(`/Vehicle/DeleteInspectionRecordTemplateById?inspectionRecordTemplateId=${inspectionRecordTemplateId}`, function (data) { $("#workAroundInput").hide(); - if (data) { + if (data.success) { successToast("Inspection Template Deleted"); hideInspectionRecordTemplateModal(); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -215,7 +215,10 @@ function deleteInspectionRecordTemplate(inspectionRecordTemplateId) { } function useInspectionRecordTemplate(inspectionRecordTemplateId) { $.get(`/Vehicle/GetAddInspectionRecordPartialView?inspectionRecordTemplateId=${inspectionRecordTemplateId}`, function (data) { - if (data) { + if (isOperationResponse(data)) { + return; + } + else if (data) { $("#inspectionRecordModalContent").html(data); hideInspectionRecordTemplateSelectorModal(); //initiate datepicker @@ -359,7 +362,7 @@ function saveinspectionRecordToVehicle() { return; } $.post('/Vehicle/SaveInspectionRecordToVehicleId', { inspectionRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast("Inspection Record Added."); hideAddInspectionRecordModal(); saveScrollPosition(); @@ -368,7 +371,7 @@ function saveinspectionRecordToVehicle() { setTimeout(function () { showAddReminderModal(formValues); }, 500); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } @@ -381,19 +384,22 @@ function updateInspectionRecord(recordId) { } let vehicleId = GetVehicleId().vehicleId; $.post('/Vehicle/UpdateInspectionRecord', { inspectionRecord: inspectionRecord }, function (data) { - if (data) { + if (data.success) { successToast("Inspection Record Updated."); hideAddInspectionRecordModal(); saveScrollPosition(); getVehicleInspectionRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } function showEditInspectionRecordModal(inspectionRecordId) { $.get(`/Vehicle/GetViewInspectionRecordPartialView?inspectionRecordId=${inspectionRecordId}`, function (data) { - if (data) { + if (isOperationResponse(data)) { + return; + } + else if (data) { $("#inspectionRecordModalContent").html(data); //initiate tag selector initTagSelector($("#inspectionRecordTag")); @@ -415,13 +421,13 @@ function deleteInspectionRecord(inspectionRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteInspectionRecordById?inspectionRecordId=${inspectionRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddInspectionRecordModal(); successToast("Inspection Record Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleInspectionRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { diff --git a/wwwroot/js/note.js b/wwwroot/js/note.js index ac1a62d..e83af15 100644 --- a/wwwroot/js/note.js +++ b/wwwroot/js/note.js @@ -48,13 +48,13 @@ function deleteNote(noteId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteNoteById?noteId=${noteId}`, function (data) { - if (data) { + if (data.success) { hideAddNoteModal(); successToast("Note Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleNotes(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -72,7 +72,7 @@ function saveNoteToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveNoteToVehicleId', { note: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Note Updated" : "Note Added."); hideAddNoteModal(); saveScrollPosition(); @@ -121,9 +121,11 @@ function getAndValidateNoteValues() { } function pinNotes(ids, toggle, pinStatus) { $.post('/Vehicle/PinNotes', { noteIds: ids, isToggle: toggle, pinStatus: pinStatus }, function (data) { - if (data) { + if (data.success) { successToast(ids.length > 1 ? `${ids.length} Notes Updated` : "Note Updated."); getVehicleNotes(GetVehicleId().vehicleId); + } else { + errorToast(data.message); } }) } \ No newline at end of file diff --git a/wwwroot/js/odometerrecord.js b/wwwroot/js/odometerrecord.js index 497b89d..59de345 100644 --- a/wwwroot/js/odometerrecord.js +++ b/wwwroot/js/odometerrecord.js @@ -52,13 +52,13 @@ function deleteOdometerRecord(odometerRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteOdometerRecordById?odometerRecordId=${odometerRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddOdometerRecordModal(); successToast("Odometer Record Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleOdometerRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -76,7 +76,7 @@ function saveOdometerRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveOdometerRecordToVehicleId', { odometerRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Odometer Record Updated" : "Odometer Record Added."); hideAddOdometerRecordModal(); saveScrollPosition(); @@ -85,7 +85,7 @@ function saveOdometerRecordToVehicle(isEdit) { setTimeout(function () { showAddReminderModal(formValues); }, 500); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } @@ -142,11 +142,11 @@ function recalculateDistance() { //reserved for when data is incoherent with negative distances due to non-chronological order of odometer records. var vehicleId = GetVehicleId().vehicleId $.post(`/Vehicle/ForceRecalculateDistanceByVehicleId?vehicleId=${vehicleId}`, function (data) { - if (data) { + if (data.success) { successToast("Odometer Records Updated") getVehicleOdometerRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } @@ -204,13 +204,13 @@ function saveMultipleOdometerRecordsToVehicle() { } } $.post('/Vehicle/SaveMultipleOdometerRecords', { editModel: formValues }, function (data) { - if (data) { + if (data.success) { successToast("Odometer Records Updated"); hideAddOdometerRecordModal(); saveScrollPosition(); getVehicleOdometerRecords(GetVehicleId().vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } diff --git a/wwwroot/js/planrecord.js b/wwwroot/js/planrecord.js index abc0322..7e77b51 100644 --- a/wwwroot/js/planrecord.js +++ b/wwwroot/js/planrecord.js @@ -88,7 +88,7 @@ function deletePlanRecord(planRecordId, noModal) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeletePlanRecordById?planRecordId=${planRecordId}`, function (data) { - if (data) { + if (data.success) { if (!noModal) { hideAddPlanRecordModal(); } @@ -96,7 +96,7 @@ function deletePlanRecord(planRecordId, noModal) { var vehicleId = GetVehicleId().vehicleId; getVehiclePlanRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -114,7 +114,7 @@ function savePlanRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SavePlanRecordToVehicleId', { planRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Plan Record Updated" : "Plan Record Added."); hideAddPlanRecordModal(); if (!getPlanRecordModelData().createdFromReminder) { @@ -125,7 +125,7 @@ function savePlanRecordToVehicle(isEdit) { } } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } @@ -170,11 +170,11 @@ function deletePlannerRecordTemplate(planRecordTemplateId) { if (result.isConfirmed) { $.post(`/Vehicle/DeletePlanRecordTemplateById?planRecordTemplateId=${planRecordTemplateId}`, function (data) { $("#workAroundInput").hide(); - if (data) { + if (data.success) { successToast("Plan Template Deleted"); hideAddPlanRecordModal(); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -309,12 +309,12 @@ function updatePlanRecordProgress(newProgress) { //Odometer Adjustments var adjustedOdometer = GetAdjustedOdometer(0, result.value.odometer); $.post('/Vehicle/UpdatePlanRecordProgress', { planRecordId: draggedId, planProgress: newProgress, odometer: adjustedOdometer }, function (data) { - if (data) { + if (data.success) { successToast("Plan Progress Updated"); var vehicleId = GetVehicleId().vehicleId; getVehiclePlanRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } @@ -322,12 +322,12 @@ function updatePlanRecordProgress(newProgress) { }); } else { $.post('/Vehicle/UpdatePlanRecordProgress', { planRecordId: draggedId, planProgress: newProgress }, function (data) { - if (data) { + if (data.success) { successToast("Plan Progress Updated"); var vehicleId = GetVehicleId().vehicleId; getVehiclePlanRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); draggedId = 0; diff --git a/wwwroot/js/reminderrecord.js b/wwwroot/js/reminderrecord.js index b75120c..37dba04 100644 --- a/wwwroot/js/reminderrecord.js +++ b/wwwroot/js/reminderrecord.js @@ -94,13 +94,13 @@ function deleteReminderRecord(reminderRecordId, e) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteReminderRecordById?reminderRecordId=${reminderRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddReminderRecordModal(); successToast("Reminder Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleReminders(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -126,7 +126,7 @@ function saveReminderRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveReminderRecordToVehicleId', { reminderRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Reminder Updated" : "Reminder Added."); hideAddReminderRecordModal(); if (!getReminderRecordModelData().createdFromRecord) { @@ -136,7 +136,7 @@ function saveReminderRecordToVehicle(isEdit) { getVehicleHaveImportantReminders(formValues.vehicleId); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } @@ -181,11 +181,11 @@ function markDoneReminderRecord(reminderRecordId, e) { event.stopPropagation(); var vehicleId = GetVehicleId().vehicleId; $.post(`/Vehicle/PushbackRecurringReminderRecord?reminderRecordId=${reminderRecordId}`, function (data) { - if (data) { + if (data.success) { successToast("Reminder Updated"); getVehicleReminders(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } diff --git a/wwwroot/js/servicerecord.js b/wwwroot/js/servicerecord.js index 76d118b..9a08000 100644 --- a/wwwroot/js/servicerecord.js +++ b/wwwroot/js/servicerecord.js @@ -52,13 +52,13 @@ function deleteServiceRecord(serviceRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteServiceRecordById?serviceRecordId=${serviceRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddServiceRecordModal(); successToast("Service Record Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleServiceRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -76,7 +76,7 @@ function saveServiceRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveServiceRecordToVehicleId', { serviceRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Service Record Updated" : "Service Record Added."); hideAddServiceRecordModal(); saveScrollPosition(); @@ -85,7 +85,7 @@ function saveServiceRecordToVehicle(isEdit) { setTimeout(function () { showAddReminderModal(formValues); }, 500); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } diff --git a/wwwroot/js/shared.js b/wwwroot/js/shared.js index f2b8201..5c712a2 100644 --- a/wwwroot/js/shared.js +++ b/wwwroot/js/shared.js @@ -933,12 +933,12 @@ function deleteRecords(ids, source) { }).then((result) => { if (result.isConfirmed) { $.post('/Vehicle/DeleteRecords', { recordIds: ids, importMode: source }, function (data) { - if (data) { + if (data.success) { successToast(`${ids.length} Record(s) Deleted`); var vehicleId = GetVehicleId().vehicleId; refreshDataCallBack(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { diff --git a/wwwroot/js/supplyrecord.js b/wwwroot/js/supplyrecord.js index a64e28a..3ff6348 100644 --- a/wwwroot/js/supplyrecord.js +++ b/wwwroot/js/supplyrecord.js @@ -52,13 +52,13 @@ function deleteSupplyRecord(supplyRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteSupplyRecordById?supplyRecordId=${supplyRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddSupplyRecordModal(); successToast("Supply Record Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleSupplyRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -76,7 +76,7 @@ function saveSupplyRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveSupplyRecordToVehicleId', { supplyRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Supply Record Updated" : "Supply Record Added."); hideAddSupplyRecordModal(); saveScrollPosition(); @@ -85,7 +85,7 @@ function saveSupplyRecordToVehicle(isEdit) { setTimeout(function () { showAddReminderModal(formValues); }, 500); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } diff --git a/wwwroot/js/taxrecord.js b/wwwroot/js/taxrecord.js index a47cac8..d0c412d 100644 --- a/wwwroot/js/taxrecord.js +++ b/wwwroot/js/taxrecord.js @@ -60,13 +60,13 @@ function deleteTaxRecord(taxRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteTaxRecordById?taxRecordId=${taxRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddTaxRecordModal(); successToast("Tax Record Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleTaxRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -84,7 +84,7 @@ function saveTaxRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveTaxRecordToVehicleId', { taxRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Tax Record Updated" : "Tax Record Added."); hideAddTaxRecordModal(); saveScrollPosition(); @@ -93,7 +93,7 @@ function saveTaxRecordToVehicle(isEdit) { setTimeout(function () { showAddReminderModal(formValues); }, 500); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) } diff --git a/wwwroot/js/upgraderecord.js b/wwwroot/js/upgraderecord.js index 2f24e2b..ef18414 100644 --- a/wwwroot/js/upgraderecord.js +++ b/wwwroot/js/upgraderecord.js @@ -52,13 +52,13 @@ function deleteUpgradeRecord(upgradeRecordId) { }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteUpgradeRecordById?upgradeRecordId=${upgradeRecordId}`, function (data) { - if (data) { + if (data.success) { hideAddUpgradeRecordModal(); successToast("Upgrade Record Deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleUpgradeRecords(vehicleId); } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }); } else { @@ -76,7 +76,7 @@ function saveUpgradeRecordToVehicle(isEdit) { } //save to db. $.post('/Vehicle/SaveUpgradeRecordToVehicleId', { upgradeRecord: formValues }, function (data) { - if (data) { + if (data.success) { successToast(isEdit ? "Upgrade Record Updated" : "Upgrade Record Added."); hideAddUpgradeRecordModal(); saveScrollPosition(); @@ -85,7 +85,7 @@ function saveUpgradeRecordToVehicle(isEdit) { setTimeout(function () { showAddReminderModal(formValues); }, 500); } } else { - errorToast(genericErrorMessage()); + errorToast(data.message); } }) }