115 lines
3.5 KiB
C#
115 lines
3.5 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using MileageTraker.Web.Attributes;
|
|
using MileageTraker.Web.DAL;
|
|
using MileageTraker.Web.Utility;
|
|
using MileageTraker.Web.ViewModels.VehicleService;
|
|
|
|
namespace MileageTraker.Web.Controllers
|
|
{
|
|
[Authorize(Roles = "Administrator, Developer")]
|
|
public class VehicleServiceController : ControllerBase
|
|
{
|
|
public ActionResult Index(VehicleServiceQueryViewModel query)
|
|
{
|
|
var validVehicleServiceYearMonths = DataService.GetValidVehicleServiceMonths();
|
|
|
|
if (!validVehicleServiceYearMonths.Any()) // this means no logs in DB
|
|
return View("Empty");
|
|
|
|
// default parameter processing
|
|
query.SetDefaultParameters(validVehicleServiceYearMonths);
|
|
|
|
var vehicleServices = DataService.FilterVehicleServices(DataService.GetVehicleServices(), query).ToList();
|
|
|
|
var viewModel = new VehicleServiceResultsViewModel(
|
|
vehicleServices.Select(s => new VehicleServiceViewModel(s)),
|
|
query,
|
|
CustomExtensions.YearMonthList(validVehicleServiceYearMonths));
|
|
|
|
return View(viewModel);
|
|
}
|
|
|
|
[ActionLog]
|
|
public ActionResult Export(VehicleServiceQueryViewModel query)
|
|
{
|
|
var validVehicleServiceYearMonths = DataService.GetValidVehicleServiceMonths();
|
|
|
|
if (!validVehicleServiceYearMonths.Any()) // this means no logs in DB
|
|
return View("Empty");
|
|
|
|
// default parameter processing
|
|
query.SetDefaultParameters(validVehicleServiceYearMonths);
|
|
|
|
var vehicleServices = DataService.FilterVehicleServices(DataService.GetVehicleServices(), query).ToList();
|
|
var filteredServices = vehicleServices.Select(vs => new VehicleServiceViewModel(vs));
|
|
|
|
var name = string.Format("VehicleServices_{0}", query);
|
|
|
|
var export = ExcelWriter<VehicleServiceViewModel>.WriteXls(filteredServices, name, name);
|
|
return File(export, "application/ms-excel", name + ".xls");
|
|
}
|
|
|
|
public ViewResult Details(int id)
|
|
{
|
|
var vehicleService = DataService.GetVehicleService(id);
|
|
var viewModel = new VehicleServiceViewModel(vehicleService);
|
|
return View(viewModel);
|
|
}
|
|
|
|
public ActionResult Create()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[ActionLog]
|
|
public ActionResult Create(VehicleServiceViewModel viewModel)
|
|
{
|
|
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);
|
|
return RedirectToAction("Index");
|
|
}
|
|
|
|
return View(viewModel);
|
|
}
|
|
|
|
public ActionResult Edit(int id)
|
|
{
|
|
var vehicleService = DataService.GetVehicleService(id);
|
|
var viewModel = new VehicleServiceViewModel(vehicleService);
|
|
return View(viewModel);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ActionLog]
|
|
public ActionResult Edit(VehicleServiceViewModel viewModel)
|
|
{
|
|
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);
|
|
return RedirectToAction("Details", new { id = vehicleService.VehicleServiceId });
|
|
}
|
|
return View(viewModel);
|
|
}
|
|
|
|
public JsonResult ServiceCenterNameAutocomplete(string term)
|
|
{
|
|
var names = DataService.GetServiceCenterNamesAutocomplete(term);
|
|
return Json(names, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
} |