/// <summary> /// /// </summary> /// <param name="filterContext"></param> public override void OnException(ExceptionContext filterContext) { this.ControllerID = filterContext.RouteData.Values["controller"].ToString(); this.ActionID = filterContext.RouteData.Values["action"].ToString(); PORTALDB DB = new PORTALDB(); base.OnException(filterContext); Exception exception = filterContext.Exception; int logGuId = new System.Random().Next(0, 32767); PTSYSLOGERR Log = new PTSYSLOGERR(); Log.ERR_GID = logGuId; Log.ERR_SRC = exception.Source; Log.ERR_SMRY = string.Format("messages:{0} 。 innerException:{1}", exception.Message, exception.InnerException); Log.ERR_DESC = exception.StackTrace; Log.LOG_DTM = DateTime.UtcNow.AddHours(8); DB.PTSYSLOGERR.Add(Log); DB.SaveChanges(); var typedResult = filterContext.Result as ViewResult; if (typedResult != null) { var tmpModel = typedResult.ViewData.Model; typedResult.ViewData = filterContext.Controller.ViewData; typedResult.ViewData.Model = tmpModel; typedResult.ViewData.Add("LogGuId", logGuId); filterContext.Result = typedResult; } }
/// <summary> /// 檢查目錄是否已被停用 /// </summary> /// <param name="filterContext"></param> private void RuleCheckMenuIsDisabled(AuthorizationContext filterContext) { PORTALDB PorDB = new PORTALDB(); //子目錄 string path = this.ControllerID + "/" + this.ActionID; var func = PorDB.PTFunction.Where(o => o.FN_LINK == path).FirstOrDefault(); if (func != null) { string muID = func.MAP_MUID; bool enabled = (bool)PorDB.PTMenu.Where(o => o.MUID == muID).First().ACT_FG; if (!enabled) { Exception exp = new Exception("此目錄已被停用"); HandleErrorInfo errorHandle = new HandleErrorInfo(exp, this.ControllerID, this.ActionID); string viewName = "~/Views/Shared/Error.cshtml"; var viewReuslt = new ViewResult(); viewReuslt.ViewName = viewName; viewReuslt.ViewData = new ViewDataDictionary <HandleErrorInfo>(errorHandle); viewReuslt.ViewData.Add("LogGuId", "0000"); filterContext.Result = viewReuslt; } } //根目錄 var rootDirectory = PorDB.PTFunction.Where(o => o.FN_LINK == this.ControllerID + "/").FirstOrDefault(); if (rootDirectory != null) { string rMuID = rootDirectory.MAP_MUID; bool enabled = (bool)PorDB.PTMenu.Where(o => o.MUID == rMuID).First().ACT_FG; if (!enabled) { Exception exp = new Exception("此根目錄已被停用"); HandleErrorInfo errorHandle = new HandleErrorInfo(exp, this.ControllerID, this.ActionID); string viewName = "~/Views/Shared/Error.cshtml"; var viewReuslt = new ViewResult(); viewReuslt.ViewName = viewName; viewReuslt.ViewData = new ViewDataDictionary <HandleErrorInfo>(errorHandle); viewReuslt.ViewData.Add("LogGuId", "0000"); filterContext.Result = viewReuslt; } } }
public static MvcHtmlString Breadcrumb(this HtmlHelper helper, string controllerName, string actionName) { PORTALDB PorDB = new PORTALDB(); string htmlStr = string.Empty; List <BreadcrumbModel> breadcrumb = new List <BreadcrumbModel>(); string path = controllerName + "/" + actionName; var controller = PorDB.PTFunction.Where(o => o.FN_LINK == string.Concat(controllerName, "/")).FirstOrDefault(); var action = PorDB.PTFunction.Where(o => o.FN_LINK == path).FirstOrDefault(); if (action != null) { breadcrumb.Add(new BreadcrumbModel() { MenuID = action.MAP_MUID }); for (; ;) { var parentID = PorDB.PTMenu.Where(o => o.MUID == action.MAP_MUID).First().MUPID; if (string.IsNullOrEmpty(parentID)) { breadcrumb = breadcrumb.OrderBy(o => o.MenuID).ToList(); break; } breadcrumb.Add(new BreadcrumbModel() { MenuID = parentID }); action.MAP_MUID = parentID; } foreach (var b in breadcrumb) { b.MenuName = PorDB.PTMenu.Where(o => o.MUID == b.MenuID).First().MU_NM; htmlStr += string.Format(@"<a href=""{0}"" class=""current"">{1}</a>", b.MenuPath, b.MenuName); } } /* * <a href="#" title="Go to Home" class="tip-bottom"><i class="icon-home"></i> Home</a> * <a href="#" class="current">Buttons & icons</a> */ return(MvcHtmlString.Create(htmlStr)); }
/// <summary> /// 取得Portal系統內的員工資料基本檔 依據ADAccount /// </summary> /// <param name="adID"></param> /// <param name="db"></param> /// <returns></returns> public Employee GetPrototypeEmployeeByAccountID(string adID, PORTALDB db) { Employee emp = db.Employee.Where(o => o.ADAccount == adID).FirstOrDefault(); return(emp); }
/// <summary> /// 取得其他資訊資訊(包含開立部門) 並依開立部門分類 近來為日期分類,出去為部門分類 /// </summary> /// <param name="data"></param> private void GetDeatilsInfo(ref Dictionary <string, List <EinvoiceDataModel> > data) { DBERP erpDB = new DBERP(); HRISDB smartmanDB = new HRISDB(); PORTALDB portalDB = new PORTALDB(); foreach (var d in data) { var model = d.Value; foreach (var inv in model) { string invNo = inv.Data.MInvoiceNumber; #region 依照發票號碼取出訂單號以及開立單位代碼 inv.Detalis = erpDB.Rinnai_Sales_Invoice_Line .Where(o => o.VAT_Transaction_Number == invNo) .Select(o => new DetalisInfo() { OrderNo = o.Shipment_No_, DepartmentCode = o.Shortcut_Dimension_1_Code }) .FirstOrDefault(); #endregion 依照發票號碼取出訂單號以及開立單位代碼 #region 找出單位主管以及單位名稱 if (inv.Detalis != null) { var detalis = smartmanDB.CODEDTL .Where(s => s.TYPECD == "UNIT" && s.CODECD == inv.Detalis.DepartmentCode).First(); inv.Detalis.DepartmentName = detalis.CODENAME; //var mailObj = portalDB.Employee.Where(o => o.EmployeeID == detalis.Remark).FirstOrDefault(); //inv.Detalis.MailToObject = mailObj == null ? "" : mailObj.ADAccount; } else { inv.Detalis = new DetalisInfo() { OrderNo = "查無資料", DepartmentName = "查無資料", DepartmentCode = "查無資料", MailToObject = new List <string>() { PublicRepository.AdminEmail } }; } #endregion 找出單位主管以及單位名稱 } #region 依照開立單位分類群組 List <EinvoiceDataModel> preGroup = new List <EinvoiceDataModel>(); foreach (var da in data) { foreach (var item in da.Value) { preGroup.Add(item); } } Dictionary <string, List <EinvoiceDataModel> > groupDepInv = preGroup .GroupBy(o => o.Detalis.DepartmentCode) .ToDictionary(g => g.Key, g => g.ToList()); data = groupDepInv; #endregion 依照開立單位分類群組 } }