private static async Task SuccessAction(IInvocation invocation, string dataIntercept, object o = null) { //invocation.ReturnValue = o; //var type = invocation.Method.ReturnType; //if (typeof(Task).IsAssignableFrom(type)) //{ // //var resultProperty = type.GetProperty("Result"); // //类型错误 都可以不要invocation参数,直接将o系列化保存到日记中 // dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(invocation.ReturnValue)}"); //} //else //{ // dataIntercept += ($"【执行完成结果】:{invocation.ReturnValue}"); //} dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(o)}"); await Task.Run(() => { Parallel.For(0, 1, e => { // LogLock.OutSql2Log("AOPLog", new string[] { dataIntercept }); SerilogServer.WriteLog("AOPLog", new string[] { dataIntercept }); }); }); }
public JObject GetPmExecUnitByCode(string iExecCode) { try { #region 参数检测 iExecCode.NotAllowNullOrEmpty("抽样单位编码"); #endregion var PmCaryInfo = _dal.GetPmExecUnitByCode(iExecCode); if (PmCaryInfo != null) { //return result;//自定义返回 return(JObject.Parse(JsonConvert.SerializeObject(PmCaryInfo)));//全部返回 } else { return(null); } } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmExecUnitByCode", ex.Message, ex); throw ex; } }
public JObject GetPmPlanSubByCode(string iCodeNum) { try { #region 参数检测 iCodeNum.NotAllowNullOrEmpty("抽查批次号"); int StringLength = iCodeNum.Length; (iCodeNum.Length <= 4).ThrowException("抽查批次号格式不正确"); string mCode = iCodeNum.Substring(0, StringLength - 4).ToUpper(); string mNum = iCodeNum.Substring(StringLength - 4); #endregion var mPmPlanSubInfo = _dal.GetPmPlanSubByCode(mCode, mNum); if (mPmPlanSubInfo != null) { //var result = new JObject() { //{"ID",mPmPlanSubInfo.ID}, //{"PLAN_CODE",mPmPlanSubInfo.PLAN_CODE}, //{"LOT_NUM",mPmPlanSubInfo.LOT_NUM} // }; //return result;//自定义返回 return(JObject.Parse(JsonConvert.SerializeObject(mPmPlanSubInfo)));//全部返回 } else { return(null); } } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmPlanSubByCode", ex.Message, ex); throw ex; } }
/// <summary> /// /// </summary> /// <param name="iCodeNum"></param> /// <returns></returns> public JObject GetPmPlanByCode(string iPalnCodeNum) { try { #region 参数检测 iPalnCodeNum.NotAllowNullOrEmpty("任务编号"); int StringLength = iPalnCodeNum.Length; (iPalnCodeNum.Length <= 4).ThrowException("任务编号格式不正确"); #endregion var mPmPlanInfo = _dal.GetPmPlanByCode(iPalnCodeNum); if (mPmPlanInfo != null) { return(JObject.Parse(JsonConvert.SerializeObject(mPmPlanInfo)));//全部返回 } else { return(null); } } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmPlanByCode", ex.Message, ex); throw ex; } }
/// <summary> /// 根据客户名查找客户 /// </summary> /// <param name="clientName"></param> /// <returns></returns> public RASCLIENTS GetRaseClientsByName(string clientName) { try { return(this.Db.Queryable <RASCLIENTS>().Where(t => t.COMPANYNAME == clientName).First()); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("GetRaseClientsByName", ex.Message, ex); throw ex; } }
/// <summary> /// 获得最大值 /// </summary> /// <returns></returns> public string GetMaxClientCode() { try { return(this.Db.Queryable <RASCLIENTS>().Max(t => (SqlFunc.Substring(t.RASCLIENTID, 2, t.RASCLIENTID.Length - 2)))); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("GetMaxClientCode", ex.Message, ex); throw ex; } }
public ORDERS GetOrdersByNo(string iOrdNo) { try { return(this.Db.Queryable <ORDERS>().Where(t => t.ORDNO == iOrdNo).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GetOrdersByNo", ex.Message, ex); throw ex; } }
/// <summary> /// 根据生产单位编码ID 获得生产企业信息 /// </summary> /// <param name="iProCode">生产单位编码</param> /// <returns></returns> public PM_PRODUCE_UNIT GetPmProduceUnitByCode(string iProCode) { try { return(this.Db.Queryable <PM_PRODUCE_UNIT>().Where(t => t.PRO_CODE == iProCode).First()); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("getPmProduceUnitByCode", ex.Message, ex); throw ex; } }
/// <summary> /// 根据参数组合进行查询 /// </summary> /// <param name="iCode"></param> /// <param name="iNum"></param> /// <returns></returns> public PM_PLAN_SUB GetPmPlanSubByCode(string iCode, string iNum) { try { return(this.Db.Queryable <PM_PLAN_SUB>().Where(t => t.PLAN_CODE == iCode && t.LOT_NUM == iNum).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmPlanSubByCode", ex.Message, ex); throw ex; } }
public PM_PRODUCE_UNIT GetPmProduceUnitById(int iProId) { try { return(this.Db.Queryable <PM_PRODUCE_UNIT>().Where(t => t.ID == iProId).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmProduceUnit", ex.Message, ex); throw ex; } }
public PM_EXEC_UINT GetPmExecUintById(int iExecId) { try { return(this.Db.Queryable <PM_EXEC_UINT>().Where(t => t.ID == iExecId).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmCary", ex.Message, ex); throw ex; } }
public PM_EC_PLATFORM GetPmEcPlatFormById(int iEcId) { try { return(this.Db.Queryable <PM_EC_PLATFORM>().Where(t => t.EC_ID == iEcId).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmEcPlatForm", ex.Message, ex); throw ex; } }
public PM_CARY GetPmCaryById(int iCaryId) { try { return(this.Db.Queryable <PM_CARY>().Where(t => t.ID == iCaryId).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmCary", ex.Message, ex); throw ex; } }
public FOLDERS GeyFolderByNo(string iFolderNo) { try { return(this.Db.Queryable <FOLDERS>().Where(t => t.FOLDERNO == iFolderNo).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GeyFolderByNo", ex.Message, ex); throw ex; } }
/// <summary> /// 20200803 By Gavin /// 查找LIMS的任务 /// </summary> /// <param name="iPlanCode">计划编号</param> /// <returns></returns> public ADD_SUPERVISEPLAN GetSupervisePlanByCode(string iPlanCode) { try { return(this.Db.Queryable <ADD_SUPERVISEPLAN>().Where(t => t.SAMPLINGBASIS.Contains(iPlanCode)).First()); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("GetSupervisePlanByCode", ex.Message, ex); throw ex; } }
/// <summary> /// 根据 抽样单位编码 获得 抽样单位信息 /// </summary> /// <param name="iExecCode">抽样单位编码</param> /// <returns></returns> public PM_EXEC_UINT GetPmExecUnitByCode(string iExecCode) { try { return this.Db.Queryable<PM_EXEC_UINT>().Where(t => t.EXEC_CODE == iExecCode).First(); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("getPmExecUnitByCode", ex.Message, ex); throw ex; } }
/// <summary> /// 20200803 By Gavin /// 获得部门表 /// </summary> /// <param name="dept"></param> /// <returns></returns> public DEPARTMENTS GetDepartmentsByCode(string dept) { try { return this.Db.Queryable<DEPARTMENTS>().Where(t => t.DEPT == dept).First(); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("GetSupervisePlanByCode", ex.Message, ex); throw ex; } }
/// <summary> /// 执行指定任务 /// </summary> /// <param name="context"></param> /// <param name="action"></param> public async Task <string> ExecuteJob(IJobExecutionContext context, Func <Task> func) { //记录Job时间 Stopwatch stopwatch = new Stopwatch(); //JOBID int jobid = context.JobDetail.Key.Name.ToInt32Req(); //JOB组名 string groupName = context.JobDetail.Key.Group; //日志 string jobHistory = $"【{DateTime.Now:yyyy-MM-dd HH:mm:ss}】【执行开始】【Id:{jobid},组别:{groupName}】"; //耗时 double taskSeconds = 0; try { stopwatch.Start(); await func();//执行任务 stopwatch.Stop(); jobHistory += $",【{DateTime.Now:yyyy-MM-dd HH:mm:ss}】【执行成功】"; } catch (Exception ex) { JobExecutionException e2 = new JobExecutionException(ex); e2.RefireImmediately = true; //true 是立即重新执行任务 jobHistory += $",【{DateTime.Now:yyyy-MM-dd HH:mm:ss}】【执行失败:{ex.Message}】"; } finally { taskSeconds = Math.Round(stopwatch.Elapsed.TotalSeconds, 3); // 总秒数 jobHistory += $",【{DateTime.Now:yyyy-MM-dd HH:mm:ss}】【执行结束】(耗时:{taskSeconds}秒)"; if (_tasksQzSvc != null) { var separator = "<br>"; var model = await _tasksQzSvc.QueryById(jobid); if (model != null) { model.RunTimes += 1; model.PerformTime = DateTime.Now; // 这里注意数据库字段的长度问题,超过限制,会造成数据库remark不更新问题。 model.TasksLog = $"{jobHistory}{separator}" + string.Join(separator, StringHelper.GetTopDataBySeparator(model.TasksLog, separator, 5)); await _tasksQzSvc.Update(model); SerilogServer.WriteLog("任务调度--" + model.JobName, new string[] { jobHistory }, false); } } } Console.Out.WriteLine(jobHistory); return(jobHistory); }
/// <summary> /// 根据受检单位编号 获得 受检单位信息 /// </summary> /// <param name="caryCode">受检单位信息</param> public PM_CARY GetPmCaryByCode(string iCaryCode) { try { return(this.Db.Queryable <PM_CARY>().Where(t => t.CARY_CODE == iCaryCode).First()); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("GetPmCaryByCode", ex.Message, ex); throw ex; } }
/// <summary> /// 根据任务编号获得任务实体 /// </summary> /// <param name="iCode">任务编号</param> /// <returns></returns> public PM_PLAN GetPmPlanByCode(string iPalnCode) { try { return(this.Db.Queryable <PM_PLAN>().Where(t => t.PLAN_CODE == iPalnCode).First()); } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPmPlanByCode", ex.Message, ex); throw ex; } }
/// <summary> /// 20200803 By Gavin /// ╗ых├олл─ /// </summary> /// <param name="Divisioncode"></param> /// <returns></returns> public DIVISIONS GetDivisionsByCode(string Divisioncode) { try { return(this.Db.Queryable <DIVISIONS>().Where(t => t.DIVISIONCODE == Divisioncode).First()); } catch (System.Exception ex) { SerilogServer.WriteErrorLog("GetSupervisePlanByCode", ex.Message, ex); throw ex; } }
public async Task InvokeAsync(HttpContext context) { if (Appsettings.app("Middleware", "IPLog", "Enabled").ObjToBool()) { // 过滤,只有接口 if (context.Request.Path.Value.Contains("api")) { context.Request.EnableBuffering(); try { // 存储请求数据 var request = context.Request; var requestInfo = JsonConvert.SerializeObject(new RequestInfo() { Ip = GetClientIP(context), Url = request.Path.ObjToString().TrimEnd('/').ToLower(), Datetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Date = DateTime.Now.ToString("yyyy-MM-dd"), Week = GetWeek(), }); if (!string.IsNullOrEmpty(requestInfo)) { // 自定义log输出 //Parallel.For(0, 1, e => //{ LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); //}); // 这种方案也行,用的是Serilog var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RequestIpInfoLog"); SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false); request.Body.Position = 0; } await _next(context); } catch (Exception) { } } else { await _next(context); } } else { await _next(context); } }
public async Task InvokeAsync(HttpContext context) { if (Appsettings.App("Middleware", "IPLog", "Enabled").ToBoolReq()) { // 过滤,只有接口 if (context.Request.Path.Value.Contains("api")) { //reuqest支持buff,否则body只能读取一次 context.Request.EnableBuffering(); try { // 存储请求数据 var request = context.Request; var requestInfo = JsonConvert.SerializeObject(new RequestInfo() { ClientIP = GetClientIP(context)?.Replace("::ffff:", ""), Url = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + context.Request.Path, Datetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Week = DateHelper.GetWeek(), }); if (!string.IsNullOrEmpty(requestInfo)) { // 自定义log输出 //Parallel.For(0, 1, e => //{ // LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); //}); SerilogServer.WriteLog("RequestIpInfoLog", new string[] { requestInfo + ", " }, false); // 这里读取过body Position是读取过几次 而此操作优于控制器先行 控制器只会读取Position为零次的 request.Body.Position = 0; } await _next(context); // 执行下一个中间件 } catch (Exception) { } } else { await _next(context); } } else { await _next(context); } }
public int SaveFolders(FOLDERS model) { try { var insert = this.Db.Insertable(model); int mResult = insert.ExecuteReturnIdentity(); return(mResult); } catch (Exception ex) { SerilogServer.WriteErrorLog("SaveFolders", ex.Message, ex); throw ex; } }
public FOLDERS GetMaxFolder() { try { lock (obj) { //return this.Db.Queryable<FOLDERS>().Max(t => t.FOLDERNO); return(this.Db.Queryable <FOLDERS>().OrderBy(t => t.FOLDERNO, OrderByType.Desc).First()); } } catch (Exception ex) { SerilogServer.WriteErrorLog("GetMaxFolder", ex.Message, ex); throw ex; } }
public PREORDERS GetMaxPreOrders() { try { lock (obj) { return(this.Db.Queryable <PREORDERS>().OrderBy(t => t.PREORDNO, OrderByType.Desc).First()); } } catch (Exception ex) { SerilogServer.WriteErrorLog("GetPreOrdersByNo", ex.Message, ex); throw ex; } }
private void LogEx(Exception ex, string dataIntercept) { if (ex != null) { //执行的 service 中,收录异常 MiniProfiler.Current.CustomTiming("Errors:", ex.Message); //执行的 service 中,捕获异常 dataIntercept += ($"【执行完成结果】:方法中出现异常:{ex.Message + ex.InnerException}\r\n"); // 异常日志里有详细的堆栈信息 Parallel.For(0, 1, e => { // LogLock.OutSql2Log("AOPLog", new string[] { dataIntercept }); SerilogServer.WriteLog("AOPLog", new string[] { dataIntercept }); }); } }
/// <summary> /// 存储响应数据 /// </summary> /// <param name="response"></param> /// <param name="ms"></param> private void ResponseDataLog(HttpResponse response, MemoryStream ms) { ms.Position = 0; var ResponseBody = new StreamReader(ms).ReadToEnd(); // 去除 Html var reg = "<[^>]+>"; var isHtml = Regex.IsMatch(ResponseBody, reg); if (!string.IsNullOrEmpty(ResponseBody)) { //Parallel.For(0, 1, e => //{ // LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); //}); SerilogServer.WriteLog("ResponseLog", new string[] { "Response Data:", ResponseBody }); } }
/// <summary> /// 存储请求数据 /// </summary> /// <param name="context"></param> /// <returns></returns> private async Task RequestDataLog(HttpContext context) { var request = context.Request; var sr = new StreamReader(request.Body); var content = $" QueryData:{request.Path + request.QueryString}\r\n BodyData:{await sr.ReadToEndAsync()}"; if (!string.IsNullOrEmpty(content)) { //Parallel.For(0, 1, e => //{ // LogLock.OutSql2Log("RequestResponseLog", new string[] { "Request Data:", content }); //}); SerilogServer.WriteLog("RequestLog", new string[] { "Request Data:", content }); request.Body.Position = 0; } }
/// <summary> /// 根据客户名称查询 /// </summary> /// <param name="clientName"></param> /// <returns></returns> public JObject GetRaseClientsByName(string clientName) { try { clientName.NotAllowNullOrEmpty("客户名称"); var client = _dal.GetRaseClientsByName(clientName); if (client != null) { return(JObject.Parse(JsonConvert.SerializeObject(client))); } else { return(null); } } catch (System.Exception ex) { SerilogServer.WriteErrorLog("GetRaseClientsByName", ex.Message, ex); throw ex; } }