80 lines
2.1 KiB
C#
80 lines
2.1 KiB
C#
using System;
|
|
using System.Web.Mvc;
|
|
using MileageTraker.Web.DAL;
|
|
using MileageTraker.Web.Models;
|
|
using MileageTraker.Web.ViewModels.Vehicle;
|
|
|
|
namespace MileageTraker.Web.Controllers
|
|
{
|
|
[Authorize(Roles = "Administrator, Developer")]
|
|
public class VehicleController : ControllerBase
|
|
{
|
|
public ViewResult Index()
|
|
{
|
|
var vehicles = DataService.GetVehicles();
|
|
return View(vehicles);
|
|
}
|
|
|
|
public ViewResult Details(string id)
|
|
{
|
|
var vehicle = DataService.GetVehicle(id);
|
|
return View(vehicle);
|
|
}
|
|
|
|
public PartialViewResult DetailsPartial(string id)
|
|
{
|
|
var vehicle = DataService.GetVehicle(id);
|
|
return PartialView(new VehiclePartialDetails(vehicle));
|
|
}
|
|
|
|
public ActionResult Create()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult Create(Vehicle vehicle)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
DataService.AddVehicle(vehicle);
|
|
TempData["StatusMessage"] = "Vehicle " + vehicle.VehicleId + "created";
|
|
return RedirectToAction("Index");
|
|
}
|
|
|
|
return View(vehicle);
|
|
}
|
|
|
|
public ActionResult Edit(string id)
|
|
{
|
|
var vehicle = DataService.GetVehicle(id);
|
|
return View(vehicle);
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult Edit(Vehicle vehicle)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
DataService.UpdateVehicle(vehicle);
|
|
TempData["StatusMessage"] = "Changes saved for vehicle " + vehicle.VehicleId;
|
|
return RedirectToAction("Details", new { id = vehicle.VehicleId });
|
|
}
|
|
return View(vehicle);
|
|
}
|
|
|
|
[AllowAnonymous]
|
|
public JsonResult Exists(string vehicleId)
|
|
{
|
|
var vehicle = DataService.GetVehicle(vehicleId);
|
|
return Json(vehicle != null, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public FileResult Export()
|
|
{
|
|
var vehicles = DataService.GetVehicles();
|
|
var export = VehicleImporter.Export(vehicles);
|
|
return File(export, "application/ms-excel", string.Format("ETHRAVehicles{0:yyyy-MM-dd}.xls", DateTime.Today));
|
|
}
|
|
}
|
|
} |