public IActionResult Save(int vehicleId, RepairFormModel formModel) { try { var validator = new RepairValidator(); var results = validator.Validate(formModel); if (results.Errors.Any()) { foreach (var error in results.Errors) { ModelState.AddModelError(error.PropertyName, error.ErrorMessage); } } if (!ModelState.IsValid) { return(View("RepairForm", formModel)); } var repair = (formModel.RepairId == AppStrings.NotSet) ? _mapper.Map <Repair>(formModel) : _mapper.Map <RepairFormModel, Repair>(formModel, _repairService.GetRepair(formModel.RepairId)); _repairService.SaveRepair(repair); TempData["SuccessMessage"] = AppStrings.RepairSavedSuccessMsg; if (formModel.AddAnotherRepair) { return(RedirectToAction(nameof(Edit), new { vehicleId })); } return(RedirectToAction("Details", "Vehicle", new { id = vehicleId })); } catch (RepairNotFoundException ex) { _logger.LogWarning(ex.Message); TempData["ErrorMessage"] = AppStrings.GenericErrorMsg; return(RedirectToAction("Details", "Vehicle", new { id = vehicleId })); } catch (Exception ex) { _logger.LogWarning($"Error occurred while attempting to save repair. {ex.Message}"); TempData["ErrorMessage"] = AppStrings.GenericErrorMsg; return(RedirectToAction("Index", "Vehicle")); } }
public IActionResult Edit(int vehicleId, int?id) { try { var vehicle = _vehicleService.GetVehicle(vehicleId, withIncludes: false); if (vehicle == null) { TempData["InfoMessage"] = AppStrings.VehicleNotFoundMsg; return(RedirectToAction("Index", "Vehicle")); } var vm = new RepairFormModel { VehicleId = vehicle.Id, }; if (id.HasValue) { var repair = _repairService.GetRepair(id.Value); if (repair == null) { TempData["InfoMessage"] = AppStrings.RepairNotFoundMsg; return(RedirectToAction("Details", "Vehicle", new { id = vehicleId })); } vm = _mapper.Map <RepairFormModel>(repair); } vm.VehicleFullName = _vehicleService.GetVehicleFullName(vehicle); return(View("RepairForm", vm)); } catch (Exception ex) { _logger.LogWarning(ex.Message); TempData["ErrorMsg"] = AppStrings.GenericErrorMsg; return(RedirectToAction("Index", "Vehicle")); } }