Пример #1
0
        public int Create(SystemLogInfo model)
        {
            Database      db = DBHelper.CreateDataBase();
            StringBuilder sb = new StringBuilder();

            sb.Append("insert into SystemLog(");
            sb.Append("MethodName,MethodSignature,TypeName,CallContext,SystemName,UseTime,Args,CreateDate,CreateIP,ReturnValue,LogType");
            sb.Append(") values(");
            sb.Append("@MethodName,@MethodSignature,@TypeName,@CallContext,@SystemName,@UseTime,@Args,@CreateDate,@CreateIP,@ReturnValue,@LogType);SELECT @@IDENTITY;");
            DbCommand dbCommand = db.GetSqlStringCommand(sb.ToString());

            db.AddInParameter(dbCommand, "@MethodName", DbType.String, model.MethodName);
            db.AddInParameter(dbCommand, "@MethodSignature", DbType.String, model.MethodSignature);
            db.AddInParameter(dbCommand, "@TypeName", DbType.String, model.TypeName);
            db.AddInParameter(dbCommand, "@CallContext", DbType.String, model.CallContext);
            db.AddInParameter(dbCommand, "@SystemName", DbType.String, model.SystemName);
            db.AddInParameter(dbCommand, "@UseTime", DbType.Int32, model.UseTime);
            db.AddInParameter(dbCommand, "@Args", DbType.String, model.Args);
            db.AddInParameter(dbCommand, "@CreateDate", DbType.DateTime, model.CreateDate);
            db.AddInParameter(dbCommand, "@CreateIP", DbType.String, model.CreateIP);
            db.AddInParameter(dbCommand, "@ReturnValue", DbType.String, model.ReturnValue);
            db.AddInParameter(dbCommand, "@LogType", DbType.Int32, model.LogType);
            int id = Convert.ToInt32(db.ExecuteScalar(dbCommand));

            return(id);
        }
Пример #2
0
        public ActionResult AjaxCalDaysByDiffDate(string startdate, string enddate)
        {
            if (!ValidateUtil.IsDate(startdate))
            {
                return(ToJsonContent(new ReturnResult()
                {
                    ErrorCode = 000010, ErrorMessage = dicErrInfo["E000010"].ChineseName, LogLevel = dicErrInfo["E000010"].LogLevel
                }));
            }
            if (!ValidateUtil.IsDate(enddate))
            {
                return(ToJsonContent(new ReturnResult()
                {
                    ErrorCode = 000011, ErrorMessage = dicErrInfo["E000011"].ChineseName, LogLevel = dicErrInfo["E000011"].LogLevel
                }));
            }

            TimeSpan diffDateSpan = DateTimeHelper.GetDiffTime2(DateTime.Parse(enddate), DateTime.Parse(startdate));

            SystemLogInfo systemLogInfo = GetUserSystemInfo();

            systemLogInfo.LogLevel      = (Int32)LogLevel.LOG_LEVEL_INFO;
            systemLogInfo.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
            systemLogInfo.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
            systemLogInfo.Remark        = string.Format("计算日期差 开始日期:{0} 结束日期{1} 结果为:{2}", startdate, enddate, diffDateSpan.Days.ToString());
            BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo);

            return(ToJsonContent(new ReturnResult()
            {
                ErrorCode = 0, ErrorMessage = diffDateSpan.Days.ToString(), LogLevel = (short)LogLevel.LOG_LEVEL_INFO
            }));
        }
Пример #3
0
        protected override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            //在Action执行之后执行 输出到输出流中文字:After Action Excutexxx
            Int32 StartExecutedTime = 0;

            if (Session[filterContext.ActionDescriptor.UniqueId] != null)
            {
                StartExecutedTime = Convert.ToInt32(Session[filterContext.ActionDescriptor.UniqueId]);
                //清除某个Session
                Session[filterContext.ActionDescriptor.UniqueId] = null;
                Session.Remove(filterContext.ActionDescriptor.UniqueId);
            }
            Int32 ExecutedTime = DateTime.Now.Millisecond - StartExecutedTime;

            SystemLogInfo systemLogInfo = GetUserSystemInfo();

            systemLogInfo.LogLevel      = (Int32)LogLevel.LOG_LEVEL_DEBUG;
            systemLogInfo.ModuleInfo    = filterContext.Controller.ToString();
            systemLogInfo.OperationInfo = filterContext.ActionDescriptor.ActionName;
            systemLogInfo.Remark        = string.Format("结束执行 {0}文件{1}控制器{2}函数 执行时间为{3}微秒", filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.Module, filterContext.Controller.ToString(), filterContext.ActionDescriptor.ActionName, ExecutedTime);

            BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo);

            if (filterContext.Result as ContentResult != null)
            {
                ReturnResult rr = JsonConvert.DeserializeObject <ReturnResult>((filterContext.Result as ContentResult).Content);
                rr.ErrorPath         = string.Format("Controller: {0}-> Action: {1}", filterContext.Controller.ToString(), filterContext.ActionDescriptor.ActionName);
                rr.ExecutedTime      = ExecutedTime;
                filterContext.Result = ToJsonContent(rr);
            }

            base.OnActionExecuted(filterContext);
        }
Пример #4
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            Session[filterContext.ActionDescriptor.UniqueId] = DateTime.Now.Millisecond;

            SystemLogInfo systemLogInfo = GetUserSystemInfo();

            systemLogInfo.LogLevel      = (Int32)LogLevel.LOG_LEVEL_DEBUG;
            systemLogInfo.ModuleInfo    = filterContext.Controller.ToString();
            systemLogInfo.OperationInfo = filterContext.ActionDescriptor.ActionName;

            //在Action执行前执行
            if (filterContext.ActionParameters.Count == 0)
            {
                systemLogInfo.Remark = string.Format("开始执行 {0}文件{1}控制器{2}函数", filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.Module, filterContext.Controller.ToString(), filterContext.ActionDescriptor.ActionName);
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                foreach (var d in filterContext.ActionParameters)
                {
                    sb.Append(string.Format("{0}={1},", d.Key, d.Value));
                }

                systemLogInfo.Remark = string.Format("开始执行 {0}文件{1}控制器{2}函数 参数内容为[{3}]", filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.Module, filterContext.Controller.ToString(), filterContext.ActionDescriptor.ActionName, sb.ToString().TrimEnd(','));
            }

            BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo);

            base.OnActionExecuting(filterContext);
        }
Пример #5
0
 /// <summary>
 /// 真删除
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="exp"></param>
 /// <returns></returns>
 public virtual bool Remove <TEntity>(Expression <Func <TEntity, bool> > exp) where TEntity : class, new()
 {
     try
     {
         Kily.Set <TEntity>().Where(exp).ToList().ForEach(t =>
         {
             Type EntityType = t.GetType();
             if (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) != null)
             {
                 string FunctionName = (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description;
                 string ThemeName    = EntityType.GetProperties().Where(x => x.GetCustomAttribute(typeof(DescriptionAttribute)) != null).FirstOrDefault().GetValue(t).ToString();
                 SystemLogInfo Log   = new SystemLogInfo();
                 if (CompanyInfo() != null)
                 {
                     Log.HandlerUser = CompanyInfo().CompanyName;
                     Log.TypePath    = CompanyInfo().TypePath;
                 }
                 else if (CompanyUser() != null)
                 {
                     Log.HandlerUser = CompanyUser().CompanyName;
                     Log.TypePath    = CompanyUser().TypePath;
                 }
                 else if (MerchantInfo() != null)
                 {
                     Log.HandlerUser = MerchantInfo().MerchantName;
                     Log.TypePath    = MerchantInfo().TypePath;
                 }
                 else if (MerchantUser() != null)
                 {
                     Log.HandlerUser = MerchantUser().MerchantName;
                     Log.TypePath    = MerchantUser().TypePath;
                 }
                 else if (CookInfo() != null)
                 {
                     Log.HandlerUser = CookInfo().TrueName + "(厨师)";
                     Log.TypePath    = CookInfo().TypePath;
                 }
                 Log.HandlerType    = "删除内容";
                 Log.HandlerTime    = DateTime.Now;
                 Log.Id             = Guid.NewGuid();
                 Log.HandlerContent = $"[{Log.HandlerUser}]对[{FunctionName}]中的[{ThemeName}]进行了[{Log.HandlerType}]操作,操作时间[{Log.HandlerTime.Value.ToShortDateString()}]";
                 Kily.Add(Log);
                 Kily.SaveChanges();
             }
             RemovePath(t);
             Kily.Set <TEntity>().Remove(t);
         });
         this.SaveChages();
         return(true);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #6
0
        /// <summary>
        /// 生成日志信息
        /// </summary>
        /// <param name="user"></param>
        /// <param name="logInfo"></param>
        /// <returns></returns>
        private SystemLogInfo CreateLogInfo(string user, string logInfo)
        {
            SystemLogInfo log = new SystemLogInfo()
            {
                User    = user,
                LogTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                IP      = Request.HttpContext.Connection.RemoteIpAddress.ToString(),
                LogInfo = logInfo
            };

            return(log);
        }
Пример #7
0
        public bool Delete(SystemLogInfo model)
        {
            Database      db = DBHelper.CreateDataBase();
            StringBuilder sb = new StringBuilder();

            sb.Append("delete from SystemLog");
            sb.Append(" where Id=@Id");
            DbCommand dbCommand = db.GetSqlStringCommand(sb.ToString());

            db.AddInParameter(dbCommand, "@Id", DbType.Int32, model.Id);
            return(db.ExecuteNonQuery(dbCommand) < 1 ? false : true);
        }
Пример #8
0
        /// <summary>
        /// 服务器内部错误 500错误
        /// </summary>
        /// <returns></returns>
        public ViewResult ServerError()
        {
            SystemLogInfo systemLogInfo = GetUserSystemInfo();

            systemLogInfo.LogLevel      = (Int32)LogLevel.LOG_LEVEL_ERR;
            systemLogInfo.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
            systemLogInfo.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
            systemLogInfo.Remark        = string.Format("500错误 出错的URL地址为: {0}", Request.Url);
            BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo);

            return(View());
        }
Пример #9
0
        /// <summary>
        /// 添加系统日志信息
        /// </summary>
        public int InsertSystemLogInfo(SystemLogInfo sysLog)
        {
            DynamicParameters param = new DynamicParameters();

            param.Add("@Happen_Time", sysLog.Happen_Time);
            param.Add("@Terminal_ID", sysLog.Terminal_ID);
            param.Add("@Well_State", sysLog.Well_State);
            param.Add("@Electricity", sysLog.Electricity);
            param.Add("@Temperature", sysLog.Temperature);
            param.Add("@Humidity", sysLog.Humidity);
            param.Add("@Smoke_Detector", sysLog.Smoke_Detector);
            param.Add("@Smoke_Power", sysLog.Smoke_Power);
            param.Add("@Signal_Strength", sysLog.Signal_Strength);
            using (Conn)
            {
                return(Conn.Execute(INSERT_SystemLog, param));
            }
        }
Пример #10
0
        protected SystemLogInfo GetUserSystemInfo()
        {
            UserInfo      currentUser   = Session["UserInfo"] as UserInfo;
            SystemLogInfo systemLogInfo = new SystemLogInfo();

            if (currentUser != null)
            {
                systemLogInfo.Name = currentUser.LoginName;
            }
            else
            {
                systemLogInfo.Name = "非登陆客户";
            }
            systemLogInfo.IP           = GetClientIp();
            systemLogInfo.Mac          = Request.ServerVariables["HTTP_USER_AGENT"];
            systemLogInfo.CreatorTime  = DateTimeHelper.GetServerDateTime2();
            systemLogInfo.SystemtypeId = systemtypeId;
            systemLogInfo.SessionId    = Session.SessionID;
            return(systemLogInfo);
        }
Пример #11
0
        public SystemLogInfo  Get(int Id)
        {
            Database      db = DBHelper.CreateDataBase();
            StringBuilder sb = new StringBuilder();

            sb.Append("select * from SystemLog where Id=@Id");
            DbCommand dbCommand = db.GetSqlStringCommand(sb.ToString());

            db.AddInParameter(dbCommand, "@Id", DbType.Int32, Id);

            SystemLogInfo model = null;

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                if (dataReader.Read())
                {
                    model = FillList(dataReader);
                }
            }
            return(model);
        }
Пример #12
0
        public ActionResult AjaxCalDateByDiffDay(string date, Int32 days)
        {
            if (!ValidateUtil.IsDate(date))
            {
                return(ToJsonContent(new ReturnResult()
                {
                    ErrorCode = 000009, ErrorMessage = dicErrInfo["E000009"].ChineseName, LogLevel = dicErrInfo["E000009"].LogLevel
                }));
            }
            DateTime      resultDT      = DateTime.Parse(date).AddDays(days);
            SystemLogInfo systemLogInfo = GetUserSystemInfo();

            systemLogInfo.LogLevel      = (Int32)LogLevel.LOG_LEVEL_INFO;
            systemLogInfo.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
            systemLogInfo.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
            systemLogInfo.Remark        = string.Format("计算几天后的日期 日期:{0} 相差{1} 结果为:{2}", date, days, resultDT.ToString("yyyy月MM年dd日 dddd", new System.Globalization.CultureInfo("zh-CN")));
            BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo);

            //使用Json.NET的序列号类,能够更加高效、完美
            return(ToJsonContent(new ReturnResult()
            {
                ErrorCode = 0, ErrorMessage = resultDT.ToString("yyyy月MM年dd日 dddd", new System.Globalization.CultureInfo("zh-CN")), LogLevel = (short)LogLevel.LOG_LEVEL_INFO
            }));
        }
Пример #13
0
        public bool Update(SystemLogInfo model)
        {
            Database      db = DBHelper.CreateDataBase();
            StringBuilder sb = new StringBuilder();

            sb.Append("update SystemLog set ");
            sb.Append("MethodName=@MethodName,MethodSignature=@MethodSignature,TypeName=@TypeName,CallContext=@CallContext,SystemName=@SystemName,UseTime=@UseTime,Args=@Args,CreateDate=@CreateDate,CreateIP=@CreateIP,ReturnValue=@ReturnValue,LogType=@LogType");
            sb.Append(" where Id=@Id");
            DbCommand dbCommand = db.GetSqlStringCommand(sb.ToString());

            db.AddInParameter(dbCommand, "@Id", DbType.Int32, model.Id);
            db.AddInParameter(dbCommand, "@MethodName", DbType.String, model.MethodName);
            db.AddInParameter(dbCommand, "@MethodSignature", DbType.String, model.MethodSignature);
            db.AddInParameter(dbCommand, "@TypeName", DbType.String, model.TypeName);
            db.AddInParameter(dbCommand, "@CallContext", DbType.String, model.CallContext);
            db.AddInParameter(dbCommand, "@SystemName", DbType.String, model.SystemName);
            db.AddInParameter(dbCommand, "@UseTime", DbType.Int32, model.UseTime);
            db.AddInParameter(dbCommand, "@Args", DbType.String, model.Args);
            db.AddInParameter(dbCommand, "@CreateDate", DbType.DateTime, model.CreateDate);
            db.AddInParameter(dbCommand, "@CreateIP", DbType.String, model.CreateIP);
            db.AddInParameter(dbCommand, "@ReturnValue", DbType.String, model.ReturnValue);
            db.AddInParameter(dbCommand, "@LogType", DbType.Int32, model.LogType);
            return(db.ExecuteNonQuery(dbCommand) < 1 ? false : true);
        }
Пример #14
0
 public bool Update(SystemLogInfo model)
 {
     return(dal.Update(model));
 }
Пример #15
0
        public ActionResult AjaxCalCodeConvert(InputClass model)
        {
            if (string.IsNullOrEmpty(model.DataType))
            {
                return(ToJsonContent(new ReturnResult()
                {
                    ErrorCode = 100004, ErrorMessage = dicErrInfo["E100004"].ChineseName, LogLevel = dicErrInfo["E100004"].LogLevel
                }));
            }

            if (string.IsNullOrEmpty(model.InputParam))
            {
                return(ToJsonContent(new ReturnResult()
                {
                    ErrorCode = 100005, ErrorMessage = dicErrInfo["E100005"].ChineseName, LogLevel = dicErrInfo["E100005"].LogLevel
                }));
            }


            StringBuilder sb = new StringBuilder();

            switch (model.DataType)
            {
            case "ASCIIToUnicode":
                #region  ASCIIToUnicode
                for (int i = 0; i < model.InputParam.Length; i++)
                {
                    sb.Append("&#" + ((int)model.InputParam[i]).ToString() + ";");
                }
                #endregion
                break;

            case "UnicodeToASCII":
                #region UnicodeToASCII
                try
                {
                    if (model.InputParam.Contains("&#"))
                    {
                        sb.Append(System.Text.RegularExpressions.Regex.Replace(
                                      model.InputParam,
                                      @"&#(?<Value>[a-zA-Z0-9]{5});",
                                      m =>
                        {
                            return(((char)int.Parse(m.Groups["Value"].Value)).ToString());
                        }));
                    }
                    else
                    {
                        string[] stringArray = model.InputParam.Split(' ');

                        if (stringArray.Length == 1)
                        {
                            sb.Append(model.InputParam);
                        }
                        else
                        {
                            for (int i = 0; i < stringArray.Length - 1; i++)
                            {
                                int n;
                                if (int.TryParse(stringArray[i], out n))
                                {
                                    sb.Append((char)int.Parse(stringArray[i]));
                                }
                                else
                                {
                                    sb.Append(stringArray[i]);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    // 系统日志
                    SystemLogInfo systemLogInfo1 = GetUserSystemInfo();
                    systemLogInfo1.LogLevel      = dicErrInfo["E000031"].LogLevel;
                    systemLogInfo1.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
                    systemLogInfo1.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
                    systemLogInfo1.Remark        = string.Format("Source:{0}, StackTrace:{1}, TargetSite:{2}, Message:{3}", ex.Source, ex.StackTrace, ex.TargetSite, ex.Message);
                    BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo1);

                    return(ToJsonContent(new ReturnResult()
                    {
                        ErrorCode = 000031, ErrorMessage = dicErrInfo["E000031"].ChineseName, LogLevel = dicErrInfo["E000031"].LogLevel
                    }));
                }
                #endregion
                break;

            case "UnicodeToChinese":
                #region UnicodeToChinese
                System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(model.InputParam, "\\\\u([\\w]{4})");

                if (mc.Count == 0)
                {
                    sb.Append(model.InputParam);
                }
                else
                {
                    string a   = model.InputParam.Replace("\\u", "");
                    char[] arr = new char[mc.Count];
                    for (int i = 0; i < arr.Length; i++)
                    {
                        arr[i] = (char)Convert.ToInt32(a.Substring(i * 4, 4), 16);
                    }
                    sb.Append(new string(arr));
                }
                #endregion
                break;

            case "ChineseToUnicode":
                #region ChineseToUnicode
                if (!string.IsNullOrEmpty(model.InputParam))
                {
                    for (int i = 0; i < model.InputParam.Length; i++)
                    {
                        //將中文轉為10進制整數,然後轉為16進制unicode
                        sb.Append("\\u" + ((int)model.InputParam[i]).ToString("x"));
                    }
                }
                #endregion
                break;

            case "ChineseToUTF8":
            case "URLEncodeByutf-8":
                #region ChineseToUTF8、URLEncodeByutf-8
                sb.Append(HttpUtility.UrlEncode(model.InputParam, Encoding.UTF8));
                #endregion
                break;

            case "UTF8ToChinese":
            case "URLDecodeByutf-8":
                #region UTF8ToChinese、URLDecodeByutf-8
                sb.Append(HttpUtility.UrlDecode(model.InputParam, Encoding.UTF8));
                #endregion
                break;

            case "URLEncodeBygb2312":
                #region URLEncodeBygb2312
                sb.Append(HttpUtility.UrlEncode(model.InputParam, System.Text.Encoding.GetEncoding(936)));
                #endregion
                break;

            case "URLDecodeBygb2312":
                #region URLDecodeBygb2312
                sb.Append(HttpUtility.UrlDecode(model.InputParam, System.Text.Encoding.GetEncoding(936)));
                #endregion
                break;

            case "TimestampToString秒":
                #region TimestampToString秒
                // 时间戳是从 1970/1/1 8:00 开始
                Int64 minTime = DateTimeHelper.GetMinDateTime().Ticks / 10000000 - 62135625600 + 28800;
                Int64 maxTime = DateTimeHelper.GetMaxDateTime().Ticks / 10000000 - 62135625600;

                // 判断输入参数是不是在这个范围内
                if (Convert.ToInt64(model.InputParam) < minTime || Convert.ToInt64(model.InputParam) > maxTime)
                {
                    return(ToJsonContent(new ReturnResult()
                    {
                        ErrorCode = 000032, ErrorMessage = dicErrInfo["E000032"].ChineseName, LogLevel = dicErrInfo["E000032"].LogLevel
                    }));
                }

                DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                sb.Append(startTime.AddSeconds(double.Parse(model.InputParam)));

                /*if (model.InputParam.Length == 10)        //精确到秒
                 * {
                 *
                 * }*/
                /*else if (model.InputParam.Length == 13)   //精确到毫秒
                 * {
                 *  sb.Append(startTime.AddMilliseconds(double.Parse(model.InputParam)));
                 * }*/
                #endregion
                break;

            case "TimestampToString毫秒":
                #region TimestampToString毫秒
                // 时间戳是从 1970/1/1 8:00 开始
                Int64 minTime2 = DateTimeHelper.GetMinDateTime().Ticks / 10000000 - 62135625600 + 28800;
                Int64 maxTime2 = DateTimeHelper.GetMaxDateTime().Ticks / 10000000 - 62135625600;

                // 判断输入参数是不是在这个范围内
                if (Convert.ToInt64(model.InputParam) < minTime2 || Convert.ToInt64(model.InputParam) > maxTime2)
                {
                    return(ToJsonContent(new ReturnResult()
                    {
                        ErrorCode = 000032, ErrorMessage = dicErrInfo["E000032"].ChineseName, LogLevel = dicErrInfo["E000032"].LogLevel
                    }));
                }

                DateTime startTime2 = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));

                /*if (model.InputParam.Length == 10)        //精确到秒
                 * {
                 *  sb.Append(startTime.AddSeconds(double.Parse(model.InputParam)));
                 * }
                 * else if (model.InputParam.Length == 13)   //精确到毫秒
                 * {
                 * sb.Append(startTime2.AddMilliseconds(double.Parse(model.InputParam)));
                 * }*/
                sb.Append(startTime2.AddMilliseconds(double.Parse(model.InputParam)));
                #endregion
                break;

            case "DateToTimestamp秒":
                #region DateToTimestamp秒
                sb.Append((ConvertHelper.ToDateTime(model.InputParam, DateTime.Now) - TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1))).TotalSeconds);
                #endregion
                break;

            case "DateToTimestamp毫秒":
                #region DateToTimestamp毫秒
                sb.Append((ConvertHelper.ToDateTime(model.InputParam, DateTime.Now) - TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1))).TotalMilliseconds);
                #endregion
                break;

            case "AsciiToNativeBy不转换字母和数字":
                #region AsciiToNativeBy不转换字母和数字
                int    code;
                char[] chars = model.InputParam.ToCharArray();
                for (int i = 0; i < chars.Length; i++)
                {
                    char c = chars[i];
                    if (c > 255)
                    {
                        sb.Append("\\u");
                        code = (c >> 8);
                        string tmp = code.ToString("X");
                        if (tmp.Length == 1)
                        {
                            sb.Append("0");
                        }
                        sb.Append(tmp);
                        code = (c & 0xFF);
                        tmp  = code.ToString("X");
                        if (tmp.Length == 1)
                        {
                            sb.Append("0");
                        }
                        sb.Append(tmp);
                    }
                    else
                    {
                        sb.Append(c);
                    }
                }
                #endregion
                break;

            case "AsciiToNativeBy转换字母和数字":
                #region AsciiToNativeBy转换字母和数字
                int    code2;
                char[] chars2 = model.InputParam.ToCharArray();
                for (int i = 0; i < chars2.Length; i++)
                {
                    char c = chars2[i];
                    sb.Append("\\u");
                    code2 = (c >> 8);
                    string tmp = code2.ToString("X");
                    if (tmp.Length == 1)
                    {
                        sb.Append("0");
                    }
                    sb.Append(tmp);
                    code2 = (c & 0xFF);
                    tmp   = code2.ToString("X");
                    if (tmp.Length == 1)
                    {
                        sb.Append("0");
                    }
                    sb.Append(tmp);
                }
                #endregion
                break;

            case "NativeToAsciiBy不转换字母和数字":
                #region NativeToAsciiBy不转换字母和数字
                if (!string.IsNullOrEmpty(model.InputParam))
                {
                    string[] strlist = model.InputParam.Replace("\\", "").Split('u');
                    try
                    {
                        for (int i = 1; i < strlist.Length; i++)
                        {
                            //将unicode字符转为10进制整数,然后转为char中文字符
                            // 如果出现大于4 则判断一下最后
                            if (strlist[i].Length > 4)
                            {
                                sb.Append((char)int.Parse(strlist[i].Substring(0, 4), System.Globalization.NumberStyles.HexNumber));
                                sb.Append(strlist[i].Substring(4, strlist[i].Length - 4));
                            }
                            else
                            {
                                sb.Append((char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber));
                            }
                        }
                    }
                    catch (FormatException ex)
                    {
                        // 系统日志
                        SystemLogInfo systemLogInfo1 = GetUserSystemInfo();
                        systemLogInfo1.LogLevel      = dicErrInfo["E000031"].LogLevel;
                        systemLogInfo1.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
                        systemLogInfo1.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
                        systemLogInfo1.Remark        = string.Format("Source:{0}, StackTrace:{1}, TargetSite:{2}, Message:{3}", ex.Source, ex.StackTrace, ex.TargetSite, ex.Message);
                        BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo1);

                        return(ToJsonContent(new ReturnResult()
                        {
                            ErrorCode = 000031, ErrorMessage = dicErrInfo["E000031"].ChineseName, LogLevel = dicErrInfo["E000031"].LogLevel
                        }));
                    }
                }
                #endregion
                break;

            case "NativeToAsciiBy转换字母和数字":
                #region NativeToAsciiBy转换字母和数字
                if (!string.IsNullOrEmpty(model.InputParam))
                {
                    string[] strlist = model.InputParam.Replace("\\", "").Split('u');
                    try
                    {
                        for (int i = 1; i < strlist.Length; i++)
                        {
                            //将unicode字符转为10进制整数,然后转为char中文字符
                            sb.Append((char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber));
                        }
                    }
                    catch (FormatException ex)
                    {
                        // 系统日志
                        SystemLogInfo systemLogInfo1 = GetUserSystemInfo();
                        systemLogInfo1.LogLevel      = dicErrInfo["E000031"].LogLevel;
                        systemLogInfo1.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
                        systemLogInfo1.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
                        systemLogInfo1.Remark        = string.Format("Source:{0}, StackTrace:{1}, TargetSite:{2}, Message:{3}", ex.Source, ex.StackTrace, ex.TargetSite, ex.Message);
                        BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo1);

                        return(ToJsonContent(new ReturnResult()
                        {
                            ErrorCode = 000031, ErrorMessage = dicErrInfo["E000031"].ChineseName, LogLevel = dicErrInfo["E000031"].LogLevel
                        }));
                    }
                }
                #endregion
                break;

            case "HexEncodeByutf-8":
                // https://www.cnblogs.com/wxbug/p/6991445.html
                #region HexEncodeByutf-8
                byte[] bytes = Encoding.UTF8.GetBytes(model.InputParam);
                for (int i = 0; i < bytes.Length; i++)
                {
                    sb.Append(string.Format("%{0:X}", bytes[i]));
                }
                #endregion
                break;

            case "HexDecodeByutf-8":
                #region HexDecodeByutf-8
                model.InputParam = model.InputParam.Replace(",", "");
                model.InputParam = model.InputParam.Replace("\n", "");
                model.InputParam = model.InputParam.Replace("\\", "");
                model.InputParam = model.InputParam.Replace(" ", "");
                model.InputParam = model.InputParam.Replace("%", "");
                // 需要将 hex 转换成 byte 数组。
                byte[] bytes3 = new byte[model.InputParam.Length / 2];
                for (int i = 0; i < bytes3.Length; i++)
                {
                    try
                    {
                        // 每两个字符是一个 byte。
                        bytes3[i] = byte.Parse(model.InputParam.Substring(i * 2, 2),
                                               System.Globalization.NumberStyles.HexNumber);
                    }
                    catch (Exception ex)
                    {
                        // 系统日志
                        SystemLogInfo systemLogInfo1 = GetUserSystemInfo();
                        systemLogInfo1.LogLevel      = dicErrInfo["E000031"].LogLevel;
                        systemLogInfo1.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
                        systemLogInfo1.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
                        systemLogInfo1.Remark        = string.Format("Source:{0}, StackTrace:{1}, TargetSite:{2}, Message:{3}", ex.Source, ex.StackTrace, ex.TargetSite, ex.Message);
                        BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo1);

                        return(ToJsonContent(new ReturnResult()
                        {
                            ErrorCode = 000031, ErrorMessage = dicErrInfo["E000031"].ChineseName, LogLevel = dicErrInfo["E000031"].LogLevel
                        }));
                    }
                }
                sb.Append(Encoding.UTF8.GetString(bytes3));
                #endregion
                break;

            case "HexEncodeBygb2312":
                #region HexEncodeBygb2312
                byte[] bytes2 = Encoding.GetEncoding("GB2312").GetBytes(model.InputParam);
                for (int i = 0; i < bytes2.Length; i++)
                {
                    sb.Append(string.Format("%{0:X}", bytes2[i]));
                }
                #endregion
                break;

            case "HexDecodeBygb2312":
                #region URLDecodeBygb2312
                model.InputParam = model.InputParam.Replace(",", "");
                model.InputParam = model.InputParam.Replace("\n", "");
                model.InputParam = model.InputParam.Replace("\\", "");
                model.InputParam = model.InputParam.Replace(" ", "");
                model.InputParam = model.InputParam.Replace("%", "");

                // 需要将 hex 转换成 byte 数组。
                byte[] bytes4 = new byte[model.InputParam.Length / 2];
                for (int i = 0; i < bytes4.Length; i++)
                {
                    try
                    {
                        // 每两个字符是一个 byte。
                        bytes4[i] = byte.Parse(model.InputParam.Substring(i * 2, 2),
                                               System.Globalization.NumberStyles.HexNumber);
                    }
                    catch (Exception ex)
                    {
                        // 系统日志
                        SystemLogInfo systemLogInfo1 = GetUserSystemInfo();
                        systemLogInfo1.LogLevel      = dicErrInfo["E000031"].LogLevel;
                        systemLogInfo1.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
                        systemLogInfo1.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
                        systemLogInfo1.Remark        = string.Format("Source:{0}, StackTrace:{1}, TargetSite:{2}, Message:{3}", ex.Source, ex.StackTrace, ex.TargetSite, ex.Message);
                        BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo1);

                        return(ToJsonContent(new ReturnResult()
                        {
                            ErrorCode = 000031, ErrorMessage = dicErrInfo["E000031"].ChineseName, LogLevel = dicErrInfo["E000031"].LogLevel
                        }));
                    }
                }
                sb.Append(Encoding.GetEncoding("GB2312").GetString(bytes4));
                #endregion
                break;

            case "HtmlEncode":
                #region HtmlEncode
                sb.Append(HttpUtility.HtmlEncode(model.InputParam));
                #endregion
                break;

            case "HtmlDecode":
                #region HtmlDecode
                sb.Append(HttpUtility.HtmlDecode(model.InputParam));
                #endregion
                break;
            }

            if (sb.Length == 0)
            {
                sb.Append(model.InputParam);
            }

            // 系统日志
            SystemLogInfo systemLogInfo = GetUserSystemInfo();
            systemLogInfo.LogLevel      = (Int32)LogLevel.LOG_LEVEL_INFO;
            systemLogInfo.ModuleInfo    = ControllerContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
            systemLogInfo.OperationInfo = ControllerContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
            systemLogInfo.Remark        = string.Format("格式转化 数据类型:{0} 输入参数{1} 输入时间戳{2} 结果为:{3}", model.DataType, model.InputParam, model.TimeStamp, sb.ToString());
            BLLFactory <SystemLog> .Instance.AddSystemLog(systemLogInfo);

            return(ToJsonContent(new ReturnResult()
            {
                ErrorCode = 0, ErrorMessage = sb.ToString(), LogLevel = (short)LogLevel.LOG_LEVEL_INFO
            }));
        }
Пример #16
0
        private SystemLogInfo  FillList(IDataReader dataReader)
        {
            SystemLogInfo model = new SystemLogInfo();
            object        ojb;

            ojb = dataReader["Id"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.Id = ( int)(ojb);
            }
            ojb = dataReader["MethodName"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.MethodName = ( string)(ojb);
            }
            ojb = dataReader["MethodSignature"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.MethodSignature = ( string)(ojb);
            }
            ojb = dataReader["TypeName"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TypeName = ( string)(ojb);
            }
            ojb = dataReader["CallContext"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CallContext = ( string)(ojb);
            }
            ojb = dataReader["SystemName"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.SystemName = ( string)(ojb);
            }
            ojb = dataReader["UseTime"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.UseTime = ( int)(ojb);
            }
            ojb = dataReader["Args"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.Args = ( string)(ojb);
            }
            ojb = dataReader["CreateDate"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CreateDate = ( DateTime)(ojb);
            }
            ojb = dataReader["CreateIP"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CreateIP = ( string)(ojb);
            }
            ojb = dataReader["ReturnValue"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.ReturnValue = ( string)(ojb);
            }
            ojb = dataReader["LogType"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.LogType = ( int)(ojb);
            }

            return(model);
        }
Пример #17
0
 /// <summary>
 /// 软删除
 /// </summary>
 /// <param name="exp"></param>
 /// <returns></returns>
 public virtual bool Delete <TEntity>(Expression <Func <TEntity, bool> > exp, string FieldName = null, object Data = null) where TEntity : class, new()
 {
     try
     {
         TEntity Entity     = Kily.Set <TEntity>().Where(exp).FirstOrDefault();
         Type    EntityType = Entity.GetType();
         if (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) != null)
         {
             string        FunctionName = (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description;
             string        ThemeName    = EntityType.GetProperties().Where(t => t.GetCustomAttribute(typeof(DescriptionAttribute)) != null).FirstOrDefault().GetValue(Entity).ToString();
             SystemLogInfo Log          = new SystemLogInfo();
             if (CompanyInfo() != null)
             {
                 Log.HandlerUser = CompanyInfo().CompanyName;
                 Log.TypePath    = CompanyInfo().TypePath;
             }
             else if (CompanyUser() != null)
             {
                 Log.HandlerUser = CompanyUser().CompanyName;
                 Log.TypePath    = CompanyUser().TypePath;
             }
             else if (MerchantInfo() != null)
             {
                 Log.HandlerUser = MerchantInfo().MerchantName;
                 Log.TypePath    = MerchantInfo().TypePath;
             }
             else if (MerchantUser() != null)
             {
                 Log.HandlerUser = MerchantUser().MerchantName;
                 Log.TypePath    = MerchantUser().TypePath;
             }
             else if (CookInfo() != null)
             {
                 Log.HandlerUser = CookInfo().TrueName + "(厨师)";
                 Log.TypePath    = CookInfo().TypePath;
             }
             Log.HandlerType    = "删除内容";
             Log.HandlerTime    = DateTime.Now;
             Log.Id             = Guid.NewGuid();
             Log.HandlerContent = $"[{Log.HandlerUser}]对[{FunctionName}]中的[{ThemeName}]进行了[{Log.HandlerType}]操作,操作时间[{Log.HandlerTime.Value.ToShortDateString()}]";
             Kily.Add(Log);
             Kily.SaveChanges();
         }
         RemovePath(Entity);
         List <PropertyInfo> props = EntityType.GetProperties().Where(t => t.Name.Contains("Delete")).ToList();
         if (!string.IsNullOrEmpty(FieldName))
         {
             Entity.GetType().GetProperties().Where(t => t.Name.Equals(FieldName)).FirstOrDefault().SetValue(Entity, Data);
         }
         props.Where(t => t.Name.Equals("IsDelete")).FirstOrDefault().SetValue(Entity, true);
         props.Where(t => t.Name.Equals("DeleteTime")).FirstOrDefault().SetValue(Entity, DateTime.Now);
         if (UserInfo() != null)
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, UserInfo().Id.ToString());
         }
         else if (CompanyInfo() != null)
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, CompanyInfo().Id.ToString());
         }
         else if (CompanyUser() != null)
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, CompanyUser().CompanyId.ToString());
         }
         else if (MerchantInfo() != null)
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, MerchantInfo().Id.ToString());
         }
         else if (MerchantUser() != null)
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, MerchantUser().InfoId.ToString());
         }
         else if (CookInfo() != null)
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, CookInfo().Id.ToString());
         }
         else if (GovtInfo() != null)
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, GovtInfo().Id.ToString());
         }
         else
         {
             props.Where(t => t.Name.Equals("DeleteUser")).FirstOrDefault().SetValue(Entity, null);
         }
         Kily.Entry <TEntity>(Entity).State = EntityState.Modified;
         this.SaveChages();
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
         //throw ex;
     }
 }
Пример #18
0
 /// <summary>
 ///更新指定单个字段或者多个字段
 /// </summary>
 /// <typeparam name="TEntity">实体</typeparam>
 /// <param name="entity">实体</param>
 /// <param name="field">单个字段</param>
 /// <param name="fields">多个字段</param>
 /// <returns></returns>
 public virtual bool UpdateField <TEntity>(TEntity Entity, string Field, IList <string> Fields = null) where TEntity : class, new()
 {
     try
     {
         Type EntityType = Entity.GetType();
         if (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) != null)
         {
             string        FunctionName = (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description;
             string        ThemeName    = EntityType.GetProperties().Where(t => t.GetCustomAttribute(typeof(DescriptionAttribute)) != null).FirstOrDefault().GetValue(Entity).ToString();
             SystemLogInfo Log          = new SystemLogInfo();
             if (CompanyInfo() != null)
             {
                 Log.HandlerUser = CompanyInfo().CompanyName;
                 Log.TypePath    = CompanyInfo().TypePath;
             }
             else if (CompanyUser() != null)
             {
                 Log.HandlerUser = CompanyUser().CompanyName;
                 Log.TypePath    = CompanyUser().TypePath;
             }
             else if (MerchantInfo() != null)
             {
                 Log.HandlerUser = MerchantInfo().MerchantName;
                 Log.TypePath    = MerchantInfo().TypePath;
             }
             else if (MerchantUser() != null)
             {
                 Log.HandlerUser = MerchantUser().MerchantName;
                 Log.TypePath    = MerchantUser().TypePath;
             }
             else if (CookInfo() != null)
             {
                 Log.HandlerUser = CookInfo().TrueName + "(厨师)";
                 Log.TypePath    = CookInfo().TypePath;
             }
             Log.HandlerType    = "修改内容";
             Log.HandlerTime    = DateTime.Now;
             Log.Id             = Guid.NewGuid();
             Log.HandlerContent = $"[{Log.HandlerUser}]对[{FunctionName}]中的[{ThemeName}]进行了[{Log.HandlerType}]操作,操作时间[{Log.HandlerTime.Value.ToShortDateString()}]";
             Kily.Add(Log);
             Kily.SaveChanges();
         }
         if (Fields != null && string.IsNullOrEmpty(Field))
         {
             List <PropertyInfo> EntityProps = Entity.GetType().GetProperties().Where(t => t.Name.Contains("Update")).ToList();
             EntityProps.Where(t => t.Name.Equals("UpdateTime")).FirstOrDefault().SetValue(Entity, DateTime.Now);
             if (UserInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, UserInfo().Id.ToString());
             }
             else if (CompanyInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CompanyInfo().Id.ToString());
             }
             else if (CompanyUser() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CompanyUser().CompanyId.ToString());
             }
             else if (MerchantInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, MerchantInfo().Id.ToString());
             }
             else if (MerchantUser() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, MerchantUser().InfoId.ToString());
             }
             else if (CookInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CookInfo().Id.ToString());
             }
             else if (GovtInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, GovtInfo().Id.ToString());
             }
             else
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, null);
             }
             foreach (var Prop in EntityProps)
             {
                 Kily.Entry <TEntity>(Entity).Property(Prop.Name).IsModified = true;//更新的时间和更新人
             }
             foreach (var Prop in Fields)
             {
                 Kily.Entry <TEntity>(Entity).Property(Prop).IsModified = true;
             }
             this.SaveChages();
             return(true);
         }
         else
         {
             List <PropertyInfo> EntityProps = Entity.GetType().GetProperties().Where(t => t.Name.Contains("Update")).ToList();
             EntityProps.Where(t => t.Name.Equals("UpdateTime")).FirstOrDefault().SetValue(Entity, DateTime.Now);
             if (UserInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, UserInfo().Id.ToString());
             }
             else if (CompanyInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CompanyInfo().Id.ToString());
             }
             else if (CompanyUser() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CompanyUser().CompanyId.ToString());
             }
             else if (MerchantInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, MerchantInfo().Id.ToString());
             }
             else if (MerchantUser() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, MerchantUser().InfoId.ToString());
             }
             else if (CookInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CookInfo().Id.ToString());
             }
             else if (GovtInfo() != null)
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, GovtInfo().Id.ToString());
             }
             else
             {
                 EntityProps.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, null);
             }
             foreach (var Prop in EntityProps)
             {
                 Kily.Entry <TEntity>(Entity).Property(Prop.Name).IsModified = true;//更新的时间和更新人
             }
             Kily.Entry <TEntity>(Entity).Property(Field).IsModified = true;
             this.SaveChages();
             return(true);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #19
0
 /// <summary>
 /// 更新实体
 /// </summary>
 /// <typeparam name="TEntity">实体</typeparam>
 /// <typeparam name="DEntity">数据传输对象</typeparam>
 /// <param name="Entity"></param>
 /// <param name="dto"></param>
 /// <param name="UseUpdate">是否使用忽略更新特性</param>
 /// <returns></returns>
 public virtual bool Update <TEntity, DEntity>(TEntity Entity, DEntity dto, bool UseUpdate = false) where TEntity : class, new() where DEntity : class, new()
 {
     try
     {
         Type EntityType = Entity.GetType();
         if (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) != null)
         {
             string        FunctionName = (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description;
             string        ThemeName    = EntityType.GetProperties().Where(t => t.GetCustomAttribute(typeof(DescriptionAttribute)) != null).FirstOrDefault().GetValue(Entity).ToString();
             SystemLogInfo Log          = new SystemLogInfo();
             if (CompanyInfo() != null)
             {
                 Log.HandlerUser = CompanyInfo().CompanyName;
                 Log.TypePath    = CompanyInfo().TypePath;
             }
             else if (CompanyUser() != null)
             {
                 Log.HandlerUser = CompanyUser().CompanyName;
                 Log.TypePath    = CompanyUser().TypePath;
             }
             else if (MerchantInfo() != null)
             {
                 Log.HandlerUser = MerchantInfo().MerchantName;
                 Log.TypePath    = MerchantInfo().TypePath;
             }
             else if (MerchantUser() != null)
             {
                 Log.HandlerUser = MerchantUser().MerchantName;
                 Log.TypePath    = MerchantUser().TypePath;
             }
             else if (CookInfo() != null)
             {
                 Log.HandlerUser = CookInfo().TrueName + "(厨师)";
                 Log.TypePath    = CookInfo().TypePath;
             }
             Log.HandlerType    = "修改内容";
             Log.HandlerTime    = DateTime.Now;
             Log.Id             = Guid.NewGuid();
             Log.HandlerContent = $"[{Log.HandlerUser}]对[{FunctionName}]中的[{ThemeName}]进行了[{Log.HandlerType}]操作,操作时间[{Log.HandlerTime.Value.ToShortDateString()}]";
             Kily.Add(Log);
             Kily.SaveChanges();
         }
         List <PropertyInfo> DtoProps    = dto.GetType().GetProperties().ToList();
         List <PropertyInfo> EntityProps = Entity.GetType().GetProperties().ToList();
         List <PropertyInfo> EntityProp  = EntityProps.Where(t => t.Name.Contains("Update")).ToList();
         EntityProp.Where(t => t.Name.Equals("UpdateTime")).FirstOrDefault().SetValue(Entity, DateTime.Now);
         if (UserInfo() != null)
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, UserInfo().Id.ToString());
         }
         else if (CompanyInfo() != null)
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CompanyInfo().Id.ToString());
         }
         else if (CompanyUser() != null)
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CompanyUser().CompanyId.ToString());
         }
         else if (MerchantInfo() != null)
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, MerchantInfo().Id.ToString());
         }
         else if (MerchantUser() != null)
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, MerchantUser().InfoId.ToString());
         }
         else if (CookInfo() != null)
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, CookInfo().Id.ToString());
         }
         else if (GovtInfo() != null)
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, GovtInfo().Id.ToString());
         }
         else
         {
             EntityProp.Where(t => t.Name.Equals("UpdateUser")).FirstOrDefault().SetValue(Entity, null);
         }
         foreach (var Prop in EntityProp)
         {
             Kily.Entry <TEntity>(Entity).Property(Prop.Name).IsModified = true;//更新的时间和更新人
         }
         foreach (var Prop in DtoProps)
         {
             if (!Prop.Name.ToUpper().Equals("Id".ToUpper()))//Id不更新
             {
                 //判断实体中是否存在DTO中的字段
                 if (EntityProps.Select(t => t.Name.ToUpper()).Contains(Prop.Name.ToUpper()))
                 {
                     if (UseUpdate)
                     {
                         if (Prop.CustomAttributes.Any(t => t.AttributeType != typeof(NoneUpdateAttribute)))
                         {
                             //需要更新的字段
                             Kily.Entry <TEntity>(Entity).Property(Prop.Name).IsModified = true;
                         }
                     }
                     else
                     {
                         Kily.Entry <TEntity>(Entity).Property(Prop.Name).IsModified = true;
                     }
                 }
             }
         }
         this.SaveChages();
         return(true);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #20
0
 /// <summary>
 /// 新增
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public virtual bool Insert <TEntity>(TEntity Entity, bool PrimaryKey = true) where TEntity : class, new()
 {
     try
     {
         Type EntityType = Entity.GetType();
         if (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) != null)
         {
             string        FunctionName = (EntityType.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description;
             string        ThemeName    = EntityType.GetProperties().Where(t => t.GetCustomAttribute(typeof(DescriptionAttribute)) != null).FirstOrDefault().GetValue(Entity).ToString();
             SystemLogInfo Log          = new SystemLogInfo();
             if (CompanyInfo() != null)
             {
                 Log.HandlerUser = CompanyInfo().CompanyName;
                 Log.TypePath    = CompanyInfo().TypePath;
             }
             else if (CompanyUser() != null)
             {
                 Log.HandlerUser = CompanyUser().CompanyName;
                 Log.TypePath    = CompanyUser().TypePath;
             }
             else if (MerchantInfo() != null)
             {
                 Log.HandlerUser = MerchantInfo().MerchantName;
                 Log.TypePath    = MerchantInfo().TypePath;
             }
             else if (MerchantUser() != null)
             {
                 Log.HandlerUser = MerchantUser().MerchantName;
                 Log.TypePath    = MerchantUser().TypePath;
             }
             else if (CookInfo() != null)
             {
                 Log.HandlerUser = CookInfo().TrueName + "(厨师)";
                 Log.TypePath    = CookInfo().TypePath;
             }
             Log.HandlerType    = "添加内容";
             Log.HandlerTime    = DateTime.Now;
             Log.Id             = Guid.NewGuid();
             Log.HandlerContent = $"[{Log.HandlerUser}]对[{FunctionName}]中的([{ThemeName}])进行了[{Log.HandlerType}]操作,操作时间[{Log.HandlerTime.Value.ToShortDateString()}]";
             Kily.Add(Log);
             Kily.SaveChanges();
         }
         List <PropertyInfo> props = EntityType.GetProperties().Where(t => t.Name.Contains("Create")).ToList();
         Entity.GetType().GetProperty("IsDelete").SetValue(Entity, false);
         if (PrimaryKey)
         {
             Entity.GetType().GetProperty("Id").SetValue(Entity, Guid.NewGuid());
         }
         props.Where(t => t.Name.Equals("CreateTime")).FirstOrDefault().SetValue(Entity, DateTime.Now);
         if (UserInfo() != null)
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, UserInfo().Id.ToString());
         }
         else if (CompanyInfo() != null)
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, CompanyInfo().Id.ToString());
         }
         else if (CompanyUser() != null)
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, CompanyUser().CompanyId.ToString());
         }
         else if (MerchantInfo() != null)
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, MerchantInfo().Id.ToString());
         }
         else if (MerchantUser() != null)
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, MerchantUser().InfoId.ToString());
         }
         else if (CookInfo() != null)
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, CookInfo().Id.ToString());
         }
         else if (GovtInfo() != null)
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, GovtInfo().Id.ToString());
         }
         else
         {
             props.Where(t => t.Name.Equals("CreateUser")).FirstOrDefault().SetValue(Entity, null);
         }
         Kily.Entry <TEntity>(Entity).State = EntityState.Added;
         this.SaveChages();
         return(true);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #21
0
        public int Create(SystemLogInfo model)
        {
            int id = dal.Create(model);

            return(id);
        }
Пример #22
0
 public bool Delete(SystemLogInfo model)
 {
     return(dal.Delete(model));
 }
Пример #23
0
 /// <summary>
 /// 添加系统日志信息
 /// </summary>
 /// <param name="UserLog">日志信息</param>
 /// <returns></returns>
 public int InsertSystemLogInfo(SystemLogInfo sysLog)
 {
     return(syslogdal.InsertSystemLogInfo(sysLog));
 }