Files
MileageTraker/Web/Controllers/VehicleController.cs
T

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));
}
}
}