using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using LeafWeb.Core.Entities; using LeafWeb.Core.Utility; using LeafWeb.WebCms.Models; using LeafWeb.WebCms.Utility; using Umbraco.Web.Mvc; namespace LeafWeb.WebCms.Controllers { public class ResultsController : BaseController { [MemberAuthorize(AllowGroup = "Authenticated")] public ActionResult Index(LeafDataQuery query) { if (!query.HasParameters && !TempData.ContainsKey("Posted")) query.usr = true; var resultItems = DataService.GetLeafInputsOrdered(); resultItems = QueryFilter.Search(resultItems, query, Members.GetCurrentLoginStatus()?.Email); var searchViewModel = new SearchViewModel { Items = resultItems, Q = query }; return View(searchViewModel); } [MemberAuthorize(AllowGroup = "Authenticated")] [HttpPost] public ActionResult Search(LeafDataQuery query) { if (!ModelState.IsValid) { return CurrentUmbracoPage(); } TempData["Posted"] = true; return RedirectToCurrentUmbracoPage(query.GetNameValueCollection()); } public ActionResult Details(int id) { var leafInput = DataService.GetLeafInput(id); if (leafInput == null) { SetStatusMessage($"LeafInput '${id}' not found, may have been deleted?"); RedirectToUmbracoPage(LeafWebPageIds.ManageQueue); } var viewModel = new LeafInputDetails_Admin(leafInput); return View(viewModel); } public ActionResult Recent() { var dateThreshold = DateTime.Today.Subtract(TimeSpan.FromDays(90)); var viewModel = from li in DataService.GetLeafInputsOrdered() where li.Added >= dateThreshold select li; return View(viewModel); } } }