Vehicle Recall integrated into Vehicle Service
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user