コード例 #1
0
ファイル: OperationLog.cs プロジェクト: 15831944/winform-1
        /// <summary>
        /// 根据相关信息,写入用户的操作日志记录
        /// </summary>
        /// <param name="userId">操作用户</param>
        /// <param name="tableName">操作表名称</param>
        /// <param name="operationType">操作类型 0-增加; 1-修改; 2-删除;</param>
        /// <param name="note">操作详细表述</param>
        /// <param name="trans">事务对象</param>
        /// <returns></returns>
        public static bool OnOperationLog(Int32 userId, string tableName, OperationType operationType, string remark, DbTransaction trans = null)
        {
            //虽然实现了这个事件,但是我们还需要判断该表是否在配置表里面,如果不在,则不记录操作日志。
            OperationLogSettingInfo settingInfo = BLLFactory <OperationLogSetting> .Instance.FindByTableName(tableName, trans);

            if (settingInfo != null)
            {
                bool insert = OperationType.新增 == operationType && (settingInfo.IsInsertLog == (short)IsInsertLog.是);
                bool update = OperationType.修改 == operationType && (settingInfo.IsUpdateLog == (short)IsInsertLog.是);
                bool delete = OperationType.除 == operationType && (settingInfo.IsDeleteLog == (short)IsInsertLog.是);
                if (insert || update || delete)
                {
                    OperationLogInfo info = new OperationLogInfo();
                    info.TableName     = tableName;
                    info.OperationType = (short)operationType;
                    info.Remark        = remark;
                    info.CreatorTime   = DateTimeHelper.GetServerDateTime2();
                    UserInfo userInfo = BLLFactory <User> .Instance.FindById(userId, trans);

                    if (userInfo != null)
                    {
                        info.UserId    = userId;
                        info.Name      = userInfo.Name;
                        info.LoginName = userInfo.LoginName;
                        info.CompanyId = userInfo.CompanyId;
                        info.Mac       = userInfo.LastLoginMac;
                        info.IP        = userInfo.LastLoginIp;
                    }
                    return(BLLFactory <OperationLog> .Instance.Insert(info, trans));
                }
            }
            return(false);
        }
コード例 #2
0
        /// <summary>
        /// 数据显示的函数
        /// </summary>
        public override void DisplayData()
        {
            InitDictItem();//数据字典加载(公用)

            if (!string.IsNullOrEmpty(ID))
            {
                #region 显示信息
                OperationLogSettingInfo info = BLLFactory <OperationLogSetting> .Instance.FindByID(ID);

                if (info != null)
                {
                    tempInfo = info;//重新给临时对象赋值,使之指向存在的记录对象

                    txtForbid.Checked    = info.Forbid;
                    txtTableName.Text    = info.TableName;
                    txtInsertLog.Checked = info.InsertLog;
                    txtDeleteLog.Checked = info.DeleteLog;
                    txtUpdateLog.Checked = info.UpdateLog;
                    txtNote.Text         = info.Note;
                    txtCreator.Text      = info.Creator;
                    txtCreateTime.SetDateTime(info.CreateTime);
                    txtEditor.Text = info.Editor;
                    txtEditTime.SetDateTime(info.EditTime);
                }
                #endregion
            }
            else
            {
                txtCreateTime.DateTime = DateTimeHelper.GetServerDateTime2(); //默认当前时间
                txtCreator.Text        = Portal.gc.UserInfo.FullName;         //默认为当前登录用户
                txtEditor.Text         = Portal.gc.UserInfo.FullName;         //默认为当前登录用户
                txtEditTime.DateTime   = DateTimeHelper.GetServerDateTime2(); //默认当前时间
            }
        }
コード例 #3
0
        /// <summary>
        /// 编辑或者保存状态下取值函数
        /// </summary>
        /// <param name="info"></param>
        private void SetInfo(OperationLogSettingInfo info)
        {
            info.IsForbid    = (short)(txtForbid.Checked ? 0 : 1);
            info.TableName   = txtTableName.Text;
            info.IsInsertLog = (short)(txtInsertLog.Checked ? 0 : 1);
            info.IsDeleteLog = (short)(txtDeleteLog.Checked ? 0 : 1);
            info.IsUpdateLog = (short)(txtUpdateLog.Checked ? 0 : 1);
            info.Remark      = txtNote.Text;
            //info.Editor = Portal.gc.UserInfo.LoginName;
            info.EditorId       = Portal.gc.UserInfo.Id;
            info.LastUpdateTime = txtCreateTime.DateTime;

            info.CurrentLoginUserId = Portal.gc.UserInfo.Id;
        }
コード例 #4
0
        /// <summary>
        /// 编辑或者保存状态下取值函数
        /// </summary>
        /// <param name="info"></param>
        private void SetInfo(OperationLogSettingInfo info)
        {
            info.Forbid    = txtForbid.Checked;
            info.TableName = txtTableName.Text;
            info.InsertLog = txtInsertLog.Checked;
            info.DeleteLog = txtDeleteLog.Checked;
            info.UpdateLog = txtUpdateLog.Checked;
            info.Note      = txtNote.Text;
            info.Editor    = Portal.gc.UserInfo.FullName;
            info.Editor_ID = Portal.gc.UserInfo.ID.ToString();
            info.EditTime  = txtCreateTime.DateTime;

            info.CurrentLoginUserId = Portal.gc.UserInfo.ID;
        }
コード例 #5
0
ファイル: OperationLog.cs プロジェクト: windygu/RT_WaterFee
        /// <summary>
        /// 根据相关信息,写入用户的操作日志记录
        /// </summary>
        /// <param name="userId">操作用户</param>
        /// <param name="tableName">操作表名称</param>
        /// <param name="operationType">操作类型</param>
        /// <param name="note">操作详细表述</param>
        /// <param name="trans">事务对象</param>
        /// <returns></returns>
        public static bool OnOperationLog(string userId, string tableName, string operationType, string note, DbTransaction trans = null)
        {
            //虽然实现了这个事件,但是我们还需要判断该表是否在配置表里面,如果不在,则不记录操作日志。
            OperationLogSettingInfo settingInfo = BLLFactory <OperationLogSetting> .Instance.FindByTableName(tableName, trans);

            if (settingInfo != null)
            {
                bool insert = operationType == "增加" && settingInfo.InsertLog;
                bool update = operationType == "修改" && settingInfo.UpdateLog;
                bool delete = operationType == "删除" && settingInfo.DeleteLog;
                if (insert || update || delete)
                {
                    OperationLogInfo info = new OperationLogInfo();
                    info.TableName     = tableName;
                    info.OperationType = operationType;
                    info.Note          = note;
                    info.CreateTime    = DateTime.Now;

                    if (!string.IsNullOrEmpty(userId))
                    {
                        UserInfo userInfo = BLLFactory <User> .Instance.FindByID(userId, trans);

                        if (userInfo != null)
                        {
                            info.User_ID     = userId;
                            info.LoginName   = userInfo.Name;
                            info.FullName    = userInfo.FullName;
                            info.Company_ID  = userInfo.Company_ID;
                            info.CompanyName = userInfo.CompanyName;
                            info.MacAddress  = userInfo.CurrentMacAddress;
                            info.IPAddress   = userInfo.CurrentLoginIP;
                        }
                    }

                    return(BLLFactory <OperationLog> .Instance.Insert(info, trans));
                }
            }
            return(false);
        }
コード例 #6
0
        /// <summary>
        /// 编辑状态下的数据保存
        /// </summary>
        /// <returns></returns>
        public override bool SaveUpdated()
        {
            //检查不同ID是否还有其他相同关键字的记录
            string condition = string.Format("TableName ='{0}' and ID <> '{1}' ", this.txtTableName.Text, ID);
            bool   exist     = BLLFactory <OperationLogSetting> .Instance.IsExistRecord(condition);

            if (exist)
            {
                MessageDxUtil.ShowTips("指定的【数据库表】已经存在,不能重复添加,请修改");
                return(false);
            }

            OperationLogSettingInfo info = BLLFactory <OperationLogSetting> .Instance.FindByID(ID);

            if (info != null)
            {
                SetInfo(info);

                try
                {
                    #region 更新数据
                    bool succeed = BLLFactory <OperationLogSetting> .Instance.Update(info, info.ID);

                    if (succeed)
                    {
                        //可添加其他关联操作

                        return(true);
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmEditOperationLogSetting));
                    MessageDxUtil.ShowError(ex.Message);
                }
            }
            return(false);
        }
コード例 #7
0
        /// <summary>
        /// 新增状态下的数据保存
        /// </summary>
        /// <returns></returns>
        public override bool SaveAddNew()
        {
            OperationLogSettingInfo info = tempInfo;//必须使用存在的局部变量,因为部分信息可能被附件使用

            SetInfo(info);
            //info.Creator = Portal.gc.UserInfo.LoginName;
            info.CreatorId   = Portal.gc.UserInfo.Id;
            info.CreatorTime = txtCreateTime.DateTime;

            try
            {
                #region 新增数据
                //检查是否还有其他相同关键字的记录
                bool exist = BLLFactory <OperationLogSetting> .Instance.IsExistKey("TableName", info.TableName);

                if (exist)
                {
                    MessageDxUtil.ShowTips("指定的【数据库表】已经存在,不能重复添加,请修改");
                    return(false);
                }

                bool succeed = BLLFactory <OperationLogSetting> .Instance.Insert(info);

                if (succeed)
                {
                    //可添加其他关联操作

                    return(true);
                }
                #endregion
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmEditOperationLogSetting));
                MessageDxUtil.ShowError(ex.Message);
            }
            return(false);
        }
コード例 #8
0
 public override void ClearScreen()
 {
     this.tempInfo = new OperationLogSettingInfo();
     base.ClearScreen();
 }