From c5fcb8d635d90924efd920ab625692faeceb5ef7 Mon Sep 17 00:00:00 2001 From: James Kolpack Date: Fri, 29 Jan 2016 12:40:00 -0500 Subject: [PATCH] Begin adding fluxnet site autocomplete --- Core/DAL/DataService.cs | 12 +++++++++++- Web/Controllers/ControllerBase.cs | 21 +++++++++++++++++++++ Web/Controllers/FluxnetSiteController.cs | 14 ++++++++++++++ Web/Controllers/LeafCharterController.cs | 2 +- Web/Controllers/LeafInputController.cs | 4 ---- 5 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 Web/Controllers/ControllerBase.cs create mode 100644 Web/Controllers/FluxnetSiteController.cs diff --git a/Core/DAL/DataService.cs b/Core/DAL/DataService.cs index e1f2229..4aa23ca 100644 --- a/Core/DAL/DataService.cs +++ b/Core/DAL/DataService.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Data.Entity; +using System.Linq; using LeafWeb.Core.Models; namespace LeafWeb.Core.DAL @@ -22,10 +23,19 @@ namespace LeafWeb.Core.DAL #region Fluxnet Sites - public IEnumerable GetFluxnetSites() + public IQueryable GetFluxnetSites() { return _db.FluxnetSites; } + + public IQueryable GetFluxnetSitesAutocomplete(string term) + { + return + from fs in GetFluxnetSites() + where fs.FluxnetId.StartsWith(term) + || fs.SiteName.Contains(term) + select fs; + } #endregion } } diff --git a/Web/Controllers/ControllerBase.cs b/Web/Controllers/ControllerBase.cs new file mode 100644 index 0000000..c460e3e --- /dev/null +++ b/Web/Controllers/ControllerBase.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; +using LeafWeb.Core.DAL; + +namespace LeafWeb.Web.Controllers +{ + //[UserActivity] + public class ControllerBase : Controller + { + protected readonly DataService DataService = new DataService(); + + protected override void Dispose(bool disposing) + { + DataService.Dispose(); + base.Dispose(disposing); + } + } +} \ No newline at end of file diff --git a/Web/Controllers/FluxnetSiteController.cs b/Web/Controllers/FluxnetSiteController.cs new file mode 100644 index 0000000..77d0270 --- /dev/null +++ b/Web/Controllers/FluxnetSiteController.cs @@ -0,0 +1,14 @@ +using System.Web.Mvc; +using LeafWeb.Core.DAL; + +namespace LeafWeb.Web.Controllers +{ + public class FluxnetSiteController : ControllerBase + { + public JsonResult Autocomplete(string term) + { + var cities = DataService.GetFluxnetSitesAutocomplete(term); + return Json(cities, JsonRequestBehavior.AllowGet); + } + } +} \ No newline at end of file diff --git a/Web/Controllers/LeafCharterController.cs b/Web/Controllers/LeafCharterController.cs index e46a90e..68c7b23 100644 --- a/Web/Controllers/LeafCharterController.cs +++ b/Web/Controllers/LeafCharterController.cs @@ -12,7 +12,7 @@ using LeafWeb.Web.Charter; namespace LeafWeb.Web.Controllers { - public class LeafCharterController : Controller + public class LeafCharterController : Controller { public ActionResult Index() { diff --git a/Web/Controllers/LeafInputController.cs b/Web/Controllers/LeafInputController.cs index b787991..ea2d005 100644 --- a/Web/Controllers/LeafInputController.cs +++ b/Web/Controllers/LeafInputController.cs @@ -10,10 +10,6 @@ namespace LeafWeb.Web.Controllers { public ActionResult Index() { - var dataService = new DataService(); - var fluxnetSites = dataService.GetFluxnetSites().ToList(); - - // initialize the session storage to retain SessionID between requests Session["placeholder"] = 0; return View();