using System;
using System.Linq;
using System.Web.Mvc;
using LeafWeb.Core.Entities;
using LeafWeb.Core.Utility;

namespace LeafWeb.WebCms.Controllers
{
	public class ResultsController : BaseController
	{
		public ActionResult Index()
		{
			var dateThreshold = DateTime.Today.Subtract(TimeSpan.FromDays(90));
			var viewModel =
					from li in DataService.GetLeafInputsOrdered()
					where li.Added >= dateThreshold
					select li;
			return View(viewModel);
		}

		[ActionLog]
		public ActionResult Download(string token)
		{
			var leafInput = DataService.GetLeafInput(token);

			if (leafInput == null)
				return View("DownloadNotFound");

			var zip = leafInput.GetOutputFileZip(LeafOutputFileType.ToUser);

			var filename = leafInput.Identifier.FilterValidFilename() + ".zip";

			return new FileContentResult(zip, "application/zip") { FileDownloadName = filename };
		}
	}
}