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, "
").Replace("'", "\""); descritpion = descritpion.Replace(Environment.NewLine, "
").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, "
").Replace("'", "\""); descritpion = descritpion.Replace(Environment.NewLine, "
").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 } }