Files
LeafWeb/WebCms/Controllers/ResultsController.cs
T

72 lines
2.0 KiB
C#

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 = "on";
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);
}
}
}