コード例 #1
0
ファイル: LogAOP.cs プロジェクト: xudahe/Xu.Core
        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 });
                });
            });
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
ファイル: PM_PLANServices.cs プロジェクト: gaiwenlin/nqilims
        /// <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;
            }
        }
コード例 #5
0
 /// <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;
     }
 }
コード例 #6
0
 /// <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;
     }
 }
コード例 #7
0
ファイル: ORDERSRepository.cs プロジェクト: gaiwenlin/nqilims
 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;
     }
 }
コード例 #8
0
 /// <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;
     }
 }
コード例 #9
0
 /// <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;
     }
 }
コード例 #10
0
 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;
     }
 }
コード例 #11
0
 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;
     }
 }
コード例 #12
0
 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;
     }
 }
コード例 #13
0
 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;
     }
 }
コード例 #14
0
 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;
     }
 }
コード例 #15
0
 /// <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;
     }
 }
コード例 #16
0
 /// <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;
     }
 }
コード例 #17
0
 /// <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;
     }
 }
コード例 #18
0
        /// <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);
        }
コード例 #19
0
 /// <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;
     }
 }
コード例 #20
0
 /// <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;
     }
 }
コード例 #21
0
 /// <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;
     }
 }
コード例 #22
0
        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);
            }
        }
コード例 #23
0
ファイル: IPLogMildd.cs プロジェクト: xudahe/Xu.Core
        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);
            }
        }
コード例 #24
0
 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;
     }
 }
コード例 #25
0
 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;
     }
 }
コード例 #26
0
 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;
     }
 }
コード例 #27
0
ファイル: LogAOP.cs プロジェクト: xudahe/Xu.Core
        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 });
                });
            }
        }
コード例 #28
0
        /// <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 });
            }
        }
コード例 #29
0
        /// <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;
            }
        }
コード例 #30
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;
            }
        }