65 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|