Add vehicle recall

This commit is contained in:
2020-09-20 22:07:13 -04:00
parent b5589103ec
commit 6f031c5cb6
34 changed files with 890 additions and 45 deletions
+104
View File
@@ -0,0 +1,104 @@
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.ViewModels.VehicleRecall;
namespace MileageTraker.Web.Controllers
{
[Authorize(Roles = "Administrator, Developer")]
public class VehicleRecallController : ControllerBase
{
public ActionResult Index()
{
var vehicleRecalls = DataService.GetOpenVehicleRecalls().ToList();
if (vehicleRecalls.Count == 0)
return View("Empty");
var viewModel = vehicleRecalls.Select(vr => new VehicleRecallViewModel(vr));
return View(viewModel);
}
public ViewResult Details(int id)
{
var vehicleRecall = DataService.GetVehicleRecall(id);
var viewModel = new VehicleRecallViewModel(vehicleRecall);
return View(viewModel);
}
public ActionResult Create()
{
return View();
}
[HttpGet]
[RequireRequestValue("vehicleId")]
public ActionResult Create(string vehicleId)
{
return View(new VehicleRecallViewModel{VehicleId = vehicleId});
}
[HttpPost]
[ActionLog]
public ActionResult Create(VehicleRecallViewModel viewModel)
{
if (ModelState.IsValid)
{
var vehicleRecall = viewModel.GetVehicleRecall();
vehicleRecall.Vehicle = DataService.GetVehicle(viewModel.VehicleId);
DataService.AddVehicleRecall(vehicleRecall);
SetStatusMessage(
string.Format("Vehicle Recall for vehicle {0} created", viewModel.VehicleId), StatusType.Success);
return RedirectToAction("Index");
}
return View(viewModel);
}
public ActionResult Edit(int id)
{
var vehicleRecall = DataService.GetVehicleRecall(id);
var viewModel = new VehicleRecallViewModel(vehicleRecall);
return View(viewModel);
}
public ActionResult Delete(int id)
{
var vehicleRecall = DataService.GetVehicleRecall(id);
var viewModel = new VehicleRecallViewModel(vehicleRecall);
return View(viewModel);
}
[HttpPost, ActionName("Delete")]
[ActionLog]
public ActionResult DeleteConfirmed(int id)
{
DataService.DeleteVehicleRecall(id);
SetStatusMessage("Vehicle Recall deleted");
return RedirectToAction("Index");
}
[HttpPost]
[ActionLog]
public ActionResult Edit(VehicleRecallViewModel viewModel)
{
if (ModelState.IsValid)
{
var vehicleRecall = viewModel.GetVehicleRecall();
vehicleRecall.Vehicle = DataService.GetVehicle(viewModel.VehicleId);
DataService.UpdateVehicleRecall(vehicleRecall);
SetStatusMessage("Changes saved for vehicle recall " + vehicleRecall.Vehicle.VehicleId);
return RedirectToAction("Details", new { id = vehicleRecall.VehicleRecallId });
}
return View(viewModel);
}
}
}