Vehicle Recall integrated into Vehicle Service

This commit is contained in:
2020-09-30 21:44:38 -04:00
parent 6f031c5cb6
commit 4b44128d62
18 changed files with 236 additions and 126 deletions
+29 -11
View File
@@ -1,9 +1,7 @@
using System.Linq;
using System.Web.Mvc;
using MileageTraker.Web.Attributes;
using MileageTraker.Web.DAL;
using MileageTraker.Web.Utility;
using MileageTraker.Web.ViewModels.ServiceReminder;
using MileageTraker.Web.Models;
using MileageTraker.Web.ViewModels.VehicleRecall;
namespace MileageTraker.Web.Controllers
@@ -11,14 +9,21 @@ namespace MileageTraker.Web.Controllers
[Authorize(Roles = "Administrator, Developer")]
public class VehicleRecallController : ControllerBase
{
public ActionResult Index()
public ActionResult Index(bool completed = false)
{
var vehicleRecalls = DataService.GetOpenVehicleRecalls().ToList();
var vehicleRecalls =
DataService.GetVehicleRecalls()
.Where(vr =>
completed
? vr.CompletedService != null
: vr.CompletedService == null).ToList();
if (vehicleRecalls.Count == 0)
return View("Empty");
var viewModel = vehicleRecalls.Select(vr => new VehicleRecallViewModel(vr));
var recalls = vehicleRecalls.Select(vr => new VehicleRecallViewModel(vr));
var viewModel = new VehicleRecallResultsViewModel(recalls, completed);
return View(viewModel);
}
@@ -49,12 +54,22 @@ namespace MileageTraker.Web.Controllers
if (ModelState.IsValid)
{
var vehicleRecall = viewModel.GetVehicleRecall();
var vehicle = DataService.GetVehicle(viewModel.VehicleId);
vehicleRecall.Vehicle = DataService.GetVehicle(viewModel.VehicleId);
vehicleRecall.Vehicle = vehicle;
DataService.AddVehicleRecall(vehicleRecall);
SetStatusMessage(
string.Format("Vehicle Recall for vehicle {0} created", viewModel.VehicleId), StatusType.Success);
var serviceReminder
= new ServiceReminder
{
Vehicle = vehicle,
TargetOdometer = vehicle.CurrentOdometer ?? 0,
Description = $"Recall: {vehicleRecall.Identifier}, {vehicleRecall.Description}"
};
DataService.AddServiceReminder(serviceReminder);
SetStatusMessage($"Vehicle Recall for vehicle {viewModel.VehicleId} created, Service Reminder also created", StatusType.Success);
return RedirectToAction("Index");
}
@@ -79,9 +94,12 @@ namespace MileageTraker.Web.Controllers
[ActionLog]
public ActionResult DeleteConfirmed(int id)
{
DataService.DeleteVehicleRecall(id);
var vehicleRecall = DataService.GetVehicleRecall(id);
var vehicleVehicleId = vehicleRecall.Vehicle.VehicleId;
SetStatusMessage("Vehicle Recall deleted");
DataService.DeleteVehicleRecall(id);
SetStatusMessage($"Vehicle Recall \"{vehicleRecall.Identifier}\" for Vehicle ID {vehicleVehicleId} deleted");
return RedirectToAction("Index");
}