71 lines
1.7 KiB
C#
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");
|
|
}
|
|
}
|
|
} |