Files

65 lines
1.6 KiB
C#

using System;
using System.Linq;
using System.Web.Mvc;
using MileageTraker.Web.Attributes;
using MileageTraker.Web.Models;
using MileageTraker.Web.Utility;
namespace MileageTraker.Web.Controllers
{
[Authorize]
public class CityController : ControllerBase
{
public JsonResult Autocomplete(string term)
{
var cities = DataService.GetCitiesAutocomplete(term);
return Json(cities, JsonRequestBehavior.AllowGet);
}
public JsonResult CityNameExists(string cityname)
{
var city = DataService.FindCityByName(cityname);
return Json(city != null, JsonRequestBehavior.AllowGet);
}
[Authorize(Roles = "Administrator, Developer")]
public ActionResult Index()
{
var cities = DataService.GetCities().ToList();
var t = cities.Select(c => Tuple.Create(c.County, c.Name));
var groupTuple = CustomExtensions.GroupTuple(t);
return View(groupTuple);
}
[Authorize(Roles = "Administrator, Developer")]
public ActionResult Create(string county)
{
var city = new City {County = county};
return View(city);
}
[Authorize(Roles = "Administrator, Developer")]
[ActionLog]
[HttpPost]
public ActionResult Create([Bind(Exclude = "CityId")] City city)
{
if (ModelState.IsValid)
{
DataService.AddCity(city);
SetStatusMessage("City " + city.Name + " created", StatusType.Success);
return RedirectToAction("Index");
}
return View(city);
}
[Authorize(Roles = "Administrator, Developer")]
public JsonResult CityNameAvailable(string name)
{
var city = DataService.FindCityByName(name);
return Json(city == null, JsonRequestBehavior.AllowGet);
}
}
}