Files
LeafWeb/WebCms/Controllers/ResultsController.cs
T

76 lines
2.0 KiB
C#

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);
}
}
}