2022-09-08 08:04:32 -07:00

196 lines
6.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
namespace Chruch.Net.Controllers
{
public class _BaseController : Controller
{
#region
protected enum MessageType
{
Warring,
Done,
Success,
Errors,
None
}
protected enum CRUDType
{
None,
Processing,
Create,
Update,
Delete
}
protected enum Active
{
Processing,
Reading,
Adding,
Editing
}
#endregion
private string ResultMessage
{
get
{
if (System.Web.HttpContext.Current.Session["ResultMessage"] != null)
{
return System.Web.HttpContext.Current.Session["ResultMessage"].ToString();
}
return "";
}
set
{
System.Web.HttpContext.Current.Session["ResultMessage"] = value;
}
}
protected string ConnString
{
get
{
if (System.Web.HttpContext.Current.Session["ConnString"] != null)
{
return System.Web.HttpContext.Current.Session["ConnString"].ToString();
}
ConnString= System.Configuration.ConfigurationManager.ConnectionStrings["entityFramework"].ConnectionString;
return ConnString;
}
set
{
System.Web.HttpContext.Current.Session["ConnString"] = value;
}
}
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (!filterContext.HttpContext.Request.IsAjaxRequest())
{
var response = filterContext.HttpContext.Response;
if (response.ContentType == "text/html" &&
!(filterContext.Result is RedirectToRouteResult) &&
!(filterContext.Result is RedirectResult))
{
if (!string.IsNullOrEmpty(ResultMessage))
{
ViewBag.StartScript = ResultMessage;
ResultMessage = "";
}
}
}
}
#region MessageBox
protected void ShowScriptMsg(string description, MessageType MsType = MessageType.None)
{
ShowScriptMsg(description, "", MsType);
}
protected void ShowScriptMsg(string descritpion, string title, MessageType MsType = MessageType.None)
{
StringBuilder stringBuilder = new StringBuilder();
title = title.Replace(Environment.NewLine, "<br>").Replace("'", "\"");
descritpion = descritpion.Replace(Environment.NewLine, "<br>").Replace("'", "\"");
stringBuilder.AppendLine(" swal({ ");
if (!string.IsNullOrWhiteSpace(descritpion))
{
stringBuilder.AppendLine($" html: '{descritpion}', ");
}
switch (MsType)
{
case MessageType.Success:
stringBuilder.AppendLine($" title: '{title} {LanHelper.GetText("Success")}', ");
stringBuilder.AppendLine(" type: \"success\" ");
break;
case MessageType.Warring:
stringBuilder.AppendLine($" title: '{title} {LanHelper.GetText("Warning")}', ");
stringBuilder.AppendLine(" type: \"warning\" ");
break;
case MessageType.Errors:
stringBuilder.AppendLine($" title: '{title} {LanHelper.GetText("Fail")}', ");
stringBuilder.AppendLine(" type: \"error\" ");
break;
case MessageType.Done:
stringBuilder.AppendLine($" title: '{title} {LanHelper.GetText("Done")}', ");
stringBuilder.AppendLine(" type: \"success\" ");
break;
default:
break;
}
stringBuilder.AppendLine("}); ");
ResultMessage = stringBuilder.ToString();
}
protected void ShowScriptMsgAndRedirect(string descritpion, string url, MessageType MsType = MessageType.None)
{
ShowScriptMsgAndRedirect(descritpion, "", url, MsType);
}
protected void ShowScriptMsgAndRedirect(string descritpion, string title, string url, MessageType MsType = MessageType.None)
{
StringBuilder stringBuilder = new StringBuilder();
title = title.Replace(Environment.NewLine, "<br>").Replace("'", "\"");
descritpion = descritpion.Replace(Environment.NewLine, "<br>").Replace("'", "\"");
stringBuilder.AppendLine(" swal({ ");
if (!string.IsNullOrWhiteSpace(descritpion))
{
stringBuilder.AppendLine($" html: '{descritpion}', ");
}
switch (MsType)
{
case MessageType.Success:
stringBuilder.AppendLine($" title: \"{title} {LanHelper.GetText("Success")}\", ");
stringBuilder.AppendLine(" type: \"success\" ");
break;
case MessageType.Warring:
stringBuilder.AppendLine($" title: \"{title} {LanHelper.GetText("Warning")}\", ");
stringBuilder.AppendLine(" type: \"warning\" ");
break;
case MessageType.Errors:
stringBuilder.AppendLine($" title: \"{title} {LanHelper.GetText("Fail")}\", ");
stringBuilder.AppendLine(" type: \"error\" ");
break;
case MessageType.Done:
stringBuilder.AppendLine($" title: \"{title} {LanHelper.GetText("Done")}\", ");
stringBuilder.AppendLine(" type: \"success\" ");
break;
default:
break;
}
stringBuilder.Append("}).then(function () {");
stringBuilder.Append("$.ShowP;");
stringBuilder.Append($"window.location.href = '{url}';");
stringBuilder.Append("});");
ResultMessage = stringBuilder.ToString();
}
protected void ShowMsgByEx(Exception ex)
{
if (ex.GetType() == typeof(ArgumentException))
{
ShowScriptMsg(LanHelper.GetText(ex.Message), "", MessageType.Warring);
}
else
{
ShowScriptMsg(ex.Message, "", MessageType.Errors);
}
}
#endregion
}
}