using System; using System.Linq; using System.Web.Mvc; 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 model) { if (!model.HasParameters && !TempData.ContainsKey("Posted")) model.usr = true; var resultItems = DataService.GetLeafInputsOrdered(); resultItems = QueryFilter.Search(resultItems, model, Members.GetCurrentLoginStatus()?.Email); var searchViewModel = new SearchViewModel { Items = resultItems, Q = model }; return View(searchViewModel); } [MemberAuthorize(AllowGroup = "Authenticated")] [HttpPost] public ActionResult Search(LeafDataQuery model) { if (!ModelState.IsValid) { return CurrentUmbracoPage(); } TempData["Posted"] = true; return RedirectToCurrentUmbracoPage(model.GetNameValueCollection()); } [MemberAuthorize(AllowGroup = "Authenticated")] 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(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); } } }