using System; using System.Linq; using System.Web.Mvc; using LeafWeb.Core.DAL; using NLog; namespace LeafWeb.Web.Controllers { //[UserActivity] public class ControllerBase : Controller { 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 controller = filterContext.RouteData.Values["controller"].ToString(); var action = filterContext.RouteData.Values["action"].ToString(); var loggerName = $"{controller}Controller.{action}"; LogManager.GetLogger(loggerName).Error(filterContext.Exception); } base.OnException(filterContext); } protected bool IsHttpParamActionMatch() { return ControllerContext.RouteData.Values["action"].ToString() .Equals("Action", StringComparison.InvariantCultureIgnoreCase); } 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"); } } }