Files
MileageTraker/Web/Controllers/VehicleController.cs
T
2012-12-04 14:04:29 -05:00

84 lines
2.0 KiB
C#

using System;
using System.Web.Mvc;
using MileageTraker.Web.DAL;
using MileageTraker.Web.Models;
using MileageTraker.Web.ViewModels;
namespace MileageTraker.Web.Controllers
{
public class VehicleController : ControllerBase
{
private readonly DataService _ds = new DataService();
public ViewResult Index()
{
var vehicles = _ds.GetVehicles();
return View(vehicles);
}
public ViewResult Details(string id)
{
var vehicle = _ds.GetVehicle(id);
return View(vehicle);
}
public PartialViewResult DetailsPartial(string id)
{
var vehicle = _ds.GetVehicle(id);
return PartialView(new VehiclePartialDetails(vehicle));
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Vehicle vehicle)
{
if (ModelState.IsValid)
{
_ds.AddVehicle(vehicle);
return RedirectToAction("Index");
}
return View(vehicle);
}
public ActionResult Edit(string id)
{
var vehicle = _ds.GetVehicle(id);
return View(vehicle);
}
[HttpPost]
public ActionResult Edit(Vehicle vehicle)
{
if (ModelState.IsValid)
{
_ds.UpdateVehicle(vehicle);
return RedirectToAction("Details", new { id = vehicle.VehicleId });
}
return View(vehicle);
}
public JsonResult Exists(string vehicleId)
{
var vehicle = _ds.GetVehicle(vehicleId);
return Json(vehicle != null, JsonRequestBehavior.AllowGet);
}
public FileResult Export()
{
var vehicles = _ds.GetVehicles();
var export = VehicleImporter.Export(vehicles);
return File(export, "application/ms-excel", string.Format("ETHRAVehicles{0:yyyy-MM-dd}.xls", DateTime.Today));
}
protected override void Dispose(bool disposing)
{
_ds.Dispose();
base.Dispose(disposing);
}
}
}