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 ? true : false, 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); } } }