Add vehicle recall
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using MileageTraker.Web.Attributes;
|
||||
using MileageTraker.Web.DAL;
|
||||
@@ -32,7 +33,16 @@ namespace MileageTraker.Web.Controllers
|
||||
public PartialViewResult DetailsPartial(string id)
|
||||
{
|
||||
var vehicle = DataService.GetVehicle(id);
|
||||
return PartialView(new VehiclePartialDetails(vehicle));
|
||||
if (vehicle == null)
|
||||
Response.StatusCode = 404;
|
||||
return PartialView(new VehiclePartialDetails(vehicle));
|
||||
}
|
||||
public PartialViewResult DetailsQuickPartial(string id)
|
||||
{
|
||||
var vehicle = DataService.GetVehicle(id);
|
||||
if (vehicle == null)
|
||||
Response.StatusCode = 404;
|
||||
return PartialView(new VehiclePartialDetailsQuick(vehicle));
|
||||
}
|
||||
|
||||
public ActionResult Create()
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using MileageTraker.Web.Attributes;
|
||||
@@ -68,55 +69,97 @@ namespace MileageTraker.Web.Controllers
|
||||
{
|
||||
var vehicleService = DataService.GetVehicleService(id);
|
||||
var viewModel = new VehicleServiceViewModel(vehicleService);
|
||||
return View(viewModel);
|
||||
return View(HydrateViewModel(viewModel, vehicleServiceId : vehicleService.VehicleServiceId));
|
||||
}
|
||||
|
||||
[Authorize(Roles = "Administrator, Developer")]
|
||||
public ActionResult Create()
|
||||
{
|
||||
return View();
|
||||
return View(HydrateViewModel(new VehicleServiceViewModel()));
|
||||
}
|
||||
|
||||
[Authorize(Roles = "Administrator, Developer")]
|
||||
[HttpGet]
|
||||
[RequireRequestValue("vehicleId")]
|
||||
public ActionResult Create(string vehicleId)
|
||||
{
|
||||
return View(new VehicleServiceViewModel{VehicleId = vehicleId});
|
||||
{
|
||||
return View(HydrateViewModel(new VehicleServiceViewModel(), vehicleId: vehicleId));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[RequireRequestValue("serviceVehicleId")]
|
||||
public ActionResult CreateDriver(string serviceVehicleId)
|
||||
{
|
||||
return View ("Create", new VehicleServiceViewModel{VehicleId = serviceVehicleId });
|
||||
return View ("Create", HydrateViewModel(new VehicleServiceViewModel(), vehicleId: serviceVehicleId));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
private VehicleServiceViewModel HydrateViewModel(VehicleServiceViewModel viewModel,
|
||||
int vehicleServiceId = Int32.MinValue, string vehicleId = null)
|
||||
{
|
||||
if (vehicleId != null)
|
||||
{
|
||||
viewModel.VehicleId = vehicleId;
|
||||
}
|
||||
viewModel.VehicleRecall
|
||||
= new SelectListViewModel
|
||||
{
|
||||
Available = GetVehicleRecallSelectList(
|
||||
viewModel.VehicleId,
|
||||
vehicleServiceId)
|
||||
};
|
||||
viewModel.VehicleRecall.Selected =
|
||||
viewModel.VehicleRecall.Available.SelectedValue != null
|
||||
? (int?) int.Parse((string)viewModel.VehicleRecall.Available.SelectedValue)
|
||||
: null;
|
||||
|
||||
return viewModel;
|
||||
}
|
||||
|
||||
private SelectList GetVehicleRecallSelectList(string vehicleId = null, int vehicleServiceId = Int32.MinValue)
|
||||
{
|
||||
var availableRecalls =
|
||||
DataService.GetOpenVehicleRecalls(vehicleId).Union(DataService.GetVehicleRecallByServiceId(vehicleServiceId))
|
||||
.Select(vr =>
|
||||
new SelectListItem
|
||||
{
|
||||
Text = vr.Identifier,
|
||||
Value = vr.VehicleRecallId.ToString(),
|
||||
Selected = vr.CompletedService.VehicleServiceId == vehicleServiceId
|
||||
}).ToList();
|
||||
|
||||
var selectedValue = availableRecalls.FirstOrDefault(vr => vr.Selected)?.Value ?? "0";
|
||||
|
||||
var selectList = new SelectList(availableRecalls, "Value", "Text", selectedValue);
|
||||
return selectList;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ActionLog]
|
||||
public ActionResult Create(VehicleServiceViewModel viewModel)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var vehicleService = viewModel.GetVehicleService();
|
||||
|
||||
vehicleService.Vehicle = DataService.GetVehicle(viewModel.VehicleId);
|
||||
DataService.AddVehicleService(vehicleService);
|
||||
|
||||
SetStatusMessage(
|
||||
string.Format("Vehicle Service for vehicle {0} created", viewModel.VehicleId), StatusType.Success);
|
||||
// update any recalls
|
||||
DataService.UpdateVehicleRecallService(viewModel.VehicleRecall?.Selected ?? int.MinValue, vehicleService);
|
||||
|
||||
SetStatusMessage($"Vehicle Service for vehicle {viewModel.VehicleId} created", StatusType.Success);
|
||||
return RedirectToAction("UpdateServiceReminders", new {vehicleId = viewModel.VehicleId});
|
||||
}
|
||||
|
||||
return View(viewModel);
|
||||
|
||||
return View(HydrateViewModel(viewModel));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[HttpGet]
|
||||
public ActionResult UpdateServiceReminders(string vehicleId)
|
||||
{
|
||||
var vehicle = DataService.GetVehicle(vehicleId);
|
||||
|
||||
var viewModel = new UpdateServiceRemindersViewModel { VehicleId = vehicleId };
|
||||
var viewModel = new UpdateServiceRemindersViewModel { VehicleId = vehicleId};
|
||||
|
||||
RefreshServiceReminderViewModel(viewModel, vehicle, true);
|
||||
|
||||
@@ -208,9 +251,9 @@ namespace MileageTraker.Web.Controllers
|
||||
[Authorize(Roles = "Administrator, Developer")]
|
||||
public ActionResult Edit(int id)
|
||||
{
|
||||
var vehicleService = DataService.GetVehicleService(id);
|
||||
var vehicleService = DataService.GetVehicleService(id);
|
||||
var viewModel = new VehicleServiceViewModel(vehicleService);
|
||||
return View(viewModel);
|
||||
return View(HydrateViewModel(viewModel, vehicleServiceId: vehicleService.VehicleServiceId));
|
||||
}
|
||||
|
||||
[Authorize(Roles = "Administrator, Developer")]
|
||||
@@ -218,7 +261,7 @@ namespace MileageTraker.Web.Controllers
|
||||
{
|
||||
var vehicleService = DataService.GetVehicleService(id);
|
||||
var viewModel = new VehicleServiceViewModel(vehicleService);
|
||||
return View(viewModel);
|
||||
return View(HydrateViewModel(viewModel, vehicleServiceId: vehicleService.VehicleServiceId));
|
||||
}
|
||||
|
||||
[Authorize(Roles = "Administrator, Developer")]
|
||||
@@ -237,16 +280,19 @@ namespace MileageTraker.Web.Controllers
|
||||
[ActionLog]
|
||||
public ActionResult Edit(VehicleServiceViewModel viewModel)
|
||||
{
|
||||
var vehicleService = viewModel.GetVehicleService();
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var vehicleService = viewModel.GetVehicleService();
|
||||
vehicleService.Vehicle = DataService.GetVehicle(viewModel.VehicleId);
|
||||
|
||||
DataService.UpdateVehicleService(vehicleService);
|
||||
SetStatusMessage("Changes saved for vehicle service " + vehicleService.Vehicle.VehicleId);
|
||||
|
||||
DataService.UpdateVehicleRecallService(viewModel.VehicleRecall?.Selected ?? int.MinValue, vehicleService);
|
||||
|
||||
SetStatusMessage("Changes saved for vehicle service " + vehicleService.Vehicle.VehicleId);
|
||||
return RedirectToAction("Details", new { id = vehicleService.VehicleServiceId });
|
||||
}
|
||||
return View(viewModel);
|
||||
return View(HydrateViewModel(viewModel, vehicleService.VehicleServiceId));
|
||||
}
|
||||
|
||||
public JsonResult ServiceCenterNameAutocomplete(string term)
|
||||
|
||||
Reference in New Issue
Block a user