public virtual bool Edit(DbConn PubConn, tb_error_log_model model)
        {
            List <ProcedureParameter> Par = new List <ProcedureParameter>()
            {
                //数据库创建时间
                new ProcedureParameter("@sqlservercreatetime", model.sqlservercreatetime),
                //日志项目中创建时间
                new ProcedureParameter("@logcreatetime", model.logcreatetime),
                //日志类型:一般非正常错误,系统级严重错误
                new ProcedureParameter("@logtype", model.logtype),
                //项目名称
                new ProcedureParameter("@projectname", model.projectname),
                //日志唯一标示(简短的方法名或者url,便于归类)
                new ProcedureParameter("@logtag", model.logtag),
                //错误信息
                new ProcedureParameter("@msg", model.msg),
                //堆栈跟踪
                new ProcedureParameter("@tracestack", model.tracestack),
                //其他备注信息
                new ProcedureParameter("@remark", model.remark),
                //相关开发人员
                new ProcedureParameter("@developer", model.developer)
            };

            Par.Add(new ProcedureParameter("@id", model.id));

            int rev = PubConn.ExecuteSql("update tb_error_log set sqlservercreatetime=@sqlservercreatetime,logcreatetime=@logcreatetime,logtype=@logtype,projectname=@projectname,logtag=@logtag,msg=@msg,tracestack=@tracestack,remark=@remark,developer=@developer where id=@id", Par);

            return(rev == 1);
        }
        public virtual bool Add(DbConn PubConn, tb_error_log_model model)
        {
            List <ProcedureParameter> Par = new List <ProcedureParameter>()
            {
                //数据库创建时间
                new ProcedureParameter("@sqlservercreatetime", model.sqlservercreatetime),
                //日志项目中创建时间
                new ProcedureParameter("@logcreatetime", model.logcreatetime),
                //日志类型:一般非正常错误,系统级严重错误
                new ProcedureParameter("@logtype", model.logtype),
                //项目名称
                new ProcedureParameter("@projectname", model.projectname),
                //日志唯一标示(简短的方法名或者url,便于归类)
                new ProcedureParameter("@logtag", model.logtag),
                //错误信息
                new ProcedureParameter("@msg", model.msg),
                //堆栈跟踪
                new ProcedureParameter("@tracestack", model.tracestack),
                //其他备注信息
                new ProcedureParameter("@remark", model.remark),
                //相关开发人员
                new ProcedureParameter("@developer", model.developer)
            };
            int rev = PubConn.ExecuteSql(@"insert into tb_error_log(sqlservercreatetime,logcreatetime,logtype,projectname,logtag,msg,tracestack,remark,developer)
										   values(@sqlservercreatetime,@logcreatetime,@logtype,@projectname,@logtag,@msg,@tracestack,@remark,@developer)"                                        , Par);

            return(rev == 1);
        }
        public virtual bool AddError(DbConn PubConn, tb_error_log_model model)
        {
            List <ProcedureParameter> Par = new List <ProcedureParameter>()
            {
                //数据库创建时间
                //new ProcedureParameter("@sqlservercreatetime",    model.sqlservercreatetime),
                //日志项目中创建时间
                new ProcedureParameter("@logcreatetime", model.logcreatetime),
                //日志类型:一般非正常错误,系统级严重错误
                new ProcedureParameter("@logtype", model.logtype),
                //项目名称
                new ProcedureParameter("@projectname", model.projectname),
                //日志唯一标示(简短的方法名或者url,便于归类)
                new ProcedureParameter("@logtag", model.logtag),
                //错误信息
                new ProcedureParameter("@msg", model.msg),
                //堆栈跟踪
                new ProcedureParameter("@tracestack", model.tracestack),
                //其他备注信息
                new ProcedureParameter("@remark", model.remark),
                //相关开发人员
                new ProcedureParameter("@developer", model.developer)
            };
            int rev = PubConn.ExecuteSql(string.Format(@"insert into tb_error_log{0}(sqlservercreatetime,logcreatetime,logtype,projectname,logtag,msg,tracestack,remark,developer)
										   values(getdate(),@logcreatetime,@logtype,@projectname,@logtag,@msg,@tracestack,@remark,@developer)"                                        , XXF.BaseService.Monitor.SystemRuntime.DbShardingHelper.MonthRule(DateTime.Now)), Par);

            return(rev == 1);
        }
        public List <tb_error_log_model> GetList(DbConn PubConn, string id, string keyword, DateTime timebegin, DateTime timeend, int logtype, string projectname, int pagesize, int pageindex, out int count)
        {
            int _count = 0;
            List <tb_error_log_model> model = new List <tb_error_log_model>();
            DataSet dsList = SqlHelper.Visit <DataSet>(ps =>
            {
                string sqlwhere = " where 1=1 ";
                if (!string.IsNullOrWhiteSpace(id))
                {
                    ps.Add("id", id);
                    sqlwhere += " and (id=@id) ";
                }
                if (!string.IsNullOrWhiteSpace(keyword))
                {
                    ps.Add("keyword", keyword);
                    sqlwhere += " and (remark like '%'+@keyword+'%' or projectname like '%'+@keyword+'%' or logtag like '%'+@keyword+'%' or msg like '%'+@keyword+'%' ) ";
                }
                if (!string.IsNullOrWhiteSpace(projectname))
                {
                    ps.Add("projectname", projectname);
                    sqlwhere += " and (projectname=@projectname) ";
                }
                if (true)
                {
                    ps.Add("timebegin", timebegin); ps.Add("timeend", timeend);
                    sqlwhere += " and  sqlservercreatetime>=@timebegin and sqlservercreatetime<=@timeend";
                }
                if (logtype >= 0)
                {
                    ps.Add("logtype", logtype);
                    sqlwhere += " and  logtype=@logtype";
                }
                string zq        = "";
                DateTime dateNow = DateTime.Now;
                if (DateTime.TryParse(timeend.ToString("yyyyMM"), out dateNow))
                {
                    zq = dateNow.ToString("yyyyMM");
                }
                else
                {
                    zq = DateTime.Now.ToString("yyyyMM");
                }
                StringBuilder sql = new StringBuilder();
                sql.Append("select ROW_NUMBER() over(order by id desc) as rownum,* from tb_error_log" + zq + " with (nolock) ");
                _count        = Convert.ToInt32(PubConn.ExecuteScalar("select count(1) from tb_error_log" + zq + " with (nolock) " + sqlwhere, ps.ToParameters()));
                DataSet ds    = new DataSet();
                string sqlSel = "select * from (" + sql + sqlwhere + ") A where rownum between " + ((pageindex - 1) * pagesize + 1) + " and " + pagesize * pageindex;
                PubConn.SqlToDataSet(ds, sqlSel, ps.ToParameters());
                return(ds);
            });

            foreach (DataRow dr in dsList.Tables[0].Rows)
            {
                tb_error_log_model m = CreateModel(dr);
                model.Add(m);
            }
            count = _count;
            return(model);
        }
        public virtual tb_error_log_model CreateModel(DataRow dr)
        {
            var o = new tb_error_log_model();

            //
            if (dr.Table.Columns.Contains("id"))
            {
                o.id = dr["id"].Toint();
            }
            //数据库创建时间
            if (dr.Table.Columns.Contains("sqlservercreatetime"))
            {
                o.sqlservercreatetime = dr["sqlservercreatetime"].ToDateTime();
            }
            //日志项目中创建时间
            if (dr.Table.Columns.Contains("logcreatetime"))
            {
                o.logcreatetime = dr["logcreatetime"].ToDateTime();
            }
            //日志类型:一般非正常错误,系统级严重错误
            if (dr.Table.Columns.Contains("logtype"))
            {
                o.logtype = dr["logtype"].ToByte();
            }
            //项目名称
            if (dr.Table.Columns.Contains("projectname"))
            {
                o.projectname = dr["projectname"].Tostring();
            }
            //日志唯一标示(简短的方法名或者url,便于归类)
            if (dr.Table.Columns.Contains("logtag"))
            {
                o.logtag = dr["logtag"].Tostring();
            }
            //错误信息
            if (dr.Table.Columns.Contains("msg"))
            {
                o.msg = dr["msg"].Tostring();
            }
            //堆栈跟踪
            if (dr.Table.Columns.Contains("tracestack"))
            {
                o.tracestack = dr["tracestack"].Tostring();
            }
            //其他备注信息
            if (dr.Table.Columns.Contains("remark"))
            {
                o.remark = dr["remark"].Tostring();
            }
            //相关开发人员
            if (dr.Table.Columns.Contains("developer"))
            {
                o.developer = dr["developer"].Tostring();
            }
            return(o);
        }
 public virtual List <tb_error_log_model> GetUserErrors(DbConn PubConn, DateTime lasttime, string username, string userstaffno, int topcount)
 {
     return(SqlHelper.Visit(ps =>
     {
         ps.Add("@lasttime", lasttime);
         string cmd = string.Format("select top {0} * from tb_error_log{1} with (nolock) where sqlservercreatetime>=@lasttime", topcount, XXF.BaseService.Monitor.SystemRuntime.DbShardingHelper.MonthRule(DateTime.Now));
         if (username != "" || userstaffno != "")
         {
             string developersql = "1=0";
             if (username != "")
             {
                 developersql += " or developer=@username";
                 ps.Add("@username", username);
             }
             if (userstaffno != "")
             {
                 developersql += " or developer=@userstaffno";
                 ps.Add("@userstaffno", userstaffno);
             }
             cmd += string.Format(" and ({0})", developersql);
         }
         cmd += " order by id desc";
         DataSet ds = new DataSet();
         PubConn.SqlToDataSet(ds, cmd, ps.ToParameters());
         List <tb_error_log_model> rs = new List <tb_error_log_model>();
         if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
         {
             foreach (DataRow dr in ds.Tables[0].Rows)
             {
                 tb_error_log_model m = CreateModel(dr);
                 rs.Add(m);
             }
         }
         return rs;
     }));
 }