Files
LeafWeb/WebCms/Controllers/BaseController.cs
T
2017-01-26 08:36:54 -05:00

71 lines
1.7 KiB
C#

using System;
using System.Linq;
using System.Web.Mvc;
using System.Web.Routing;
using log4net;
using LeafWeb.Core.DAL;
using Umbraco.Web.Mvc;
namespace LeafWeb.WebCms.Controllers
{
public class BaseController : SurfaceController
{
protected readonly DataService DataService = new DataService();
protected override void Dispose(bool disposing)
{
DataService.Dispose();
base.Dispose(disposing);
}
protected override void OnException(ExceptionContext filterContext)
{
if (filterContext?.Exception != null)
{
var loggerName = LoggerName(filterContext.RouteData);
LogManager.GetLogger(loggerName).Error(filterContext.Exception);
}
base.OnException(filterContext);
}
protected string LoggerName(RouteData routeData)
{
var controller = RouteData.Values["controller"].ToString();
var action = RouteData.Values["action"].ToString();
return $"LeafWeb.WebCms.Controllers.{controller}Controller.{action}";
}
// Status messages to pages
protected enum StatusType
{
Info,
Success,
Error
}
protected void SetStatusMessage(string msg, StatusType statusType = StatusType.Info)
{
TempData["StatusMessage"] = msg;
switch (statusType)
{
case StatusType.Success:
TempData["StatusMessage-Type"] = "alert-success";
break;
case StatusType.Error:
TempData["StatusMessage-Type"] = "alert-error";
break;
case StatusType.Info:
break;
default:
throw new ArgumentOutOfRangeException(nameof(statusType), statusType, null);
}
}
protected SelectList GetPhotosynthesisTypeSelectList()
{
return new SelectList(DataService.GetPhotosynthesisTypes().ToList(), "Id", "Name");
}
}
}