/// <summary>
 /// 添加员工
 /// </summary>
 /// <param name="DepartmentId">部门主键</param>
 /// <param name="userName">用户名</param>
 /// <param name="code">编号</param>
 /// <param name="fullName">名称</param>
 /// <param name="canVisit">允许登录</param>
 /// <param name="isVirtual">虚拟用户</param>
 /// <param name="isDimission">离职</param>
 /// <param name="enabled">有效</param>
 /// <param name="description">描述</param>
 /// <returns>主键</returns>
 public string Add(string departmentId, string userName, string code, string fullName, bool isVirtual, bool isDimission, bool enabled, string description)
 {
     SQLBuilder sqlBuilder = new SQLBuilder(DbHelper);
     BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper);
     string sequence = sequenceManager.GetSequence(this.CurrentTableName);
     sqlBuilder.BeginInsert(this.CurrentTableName);
     sqlBuilder.SetValue(BaseStaffEntity.FieldId, sequence);
     sqlBuilder.SetValue(BaseStaffEntity.FieldCode, code);
     sqlBuilder.SetValue(BaseStaffEntity.FieldUserName, userName);
     sqlBuilder.SetValue(BaseStaffEntity.FieldRealName, fullName);
     sqlBuilder.SetValue(BaseStaffEntity.FieldDepartmentId, departmentId);
     sqlBuilder.SetValue(BaseStaffEntity.FieldSortCode, sequence);
     sqlBuilder.SetValue(BaseStaffEntity.FieldEnabled, enabled ? 1 : 0);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(BaseStaffEntity.FieldCreateUserId, UserInfo.Id);
         sqlBuilder.SetValue(BaseStaffEntity.FieldCreateOn, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(BaseStaffEntity.FieldCreateOn);
     string returnValue = sqlBuilder.EndInsert() > 0 ? sequence : string.Empty;
     return returnValue;
 }
Beispiel #2
0
        /// <summary>
        /// 获取序列号
        /// </summary>
        /// <param name="dbHelper">数据库连接</param>
        /// <param name="userInfo">用户</param>
        /// <param name="fullName">序列名称</param>
        /// <returns>序列号</returns>
        public string GetSequence(IDbHelper dbHelper, BaseUserInfo userInfo, string fullName)
        {
            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper);
            return sequenceManager.GetSequence(fullName);
        }
Beispiel #3
0
        /// <summary>
        /// 获取原序列号
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="fullName">序列名称</param>
        /// <param name="defaultSequence">默认序列</param>
        /// <param name="sequenceLength">序列长度</param>
        /// <param name="fillZeroPrefix">是否填充补零</param>
        /// <returns>序列号</returns>
        public string GetOldSequence(BaseUserInfo userInfo, string fullName, int defaultSequence, int sequenceLength, bool fillZeroPrefix)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            string returnValue = string.Empty;

            // 这里是为了防止并发冲突用的
            lock (LOCK)
            {
                using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
                {
                    try
                    {
                        dbHelper.Open(UserCenterDbConnection);
                        BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper);
                        returnValue = sequenceManager.GetOldSequence(fullName, defaultSequence, sequenceLength, fillZeroPrefix);
                    }
                    catch (Exception ex)
                    {
                        BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                        throw ex;
                    }
                    finally
                    {
                        dbHelper.Close();
                    }
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif
            return returnValue;
        }
Beispiel #4
0
        /// <summary>
        /// 获取序列号列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTable(BaseUserInfo userInfo)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            DataTable dataTable = new DataTable(BaseSequenceEntity.TableName);
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper);
                    dataTable = sequenceManager.GetDataTable();
                    dataTable.TableName = BaseSequenceEntity.TableName;
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.SequenceService_GetDataTable, MethodBase.GetCurrentMethod());
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif
            return dataTable;
        }
 /// <summary>
 /// 添加实体
 /// </summary>
 /// <param name="baseMessageEntity">实体</param>
 public string AddEntity(BaseMessageEntity baseMessageEntity)
 {
     string sequence = string.Empty;
     this.Identity = false;
     if (baseMessageEntity.SortCode == null || baseMessageEntity.SortCode == 0)
     {
         BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
         sequence = sequenceManager.GetSequence(this.CurrentTableName);
         baseMessageEntity.SortCode = int.Parse(sequence);
     }
     if (baseMessageEntity.Id != null)
     {
         sequence = baseMessageEntity.Id.ToString();
     }
     SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId);
     sqlBuilder.BeginInsert(this.CurrentTableName, BaseMessageEntity.FieldId);
     if (!this.Identity)
     {
         if (string.IsNullOrEmpty(baseMessageEntity.Id))
         {
             sequence = BaseBusinessLogic.NewGuid();
             baseMessageEntity.Id = sequence ;
         }
         sqlBuilder.SetValue(BaseMessageEntity.FieldId, baseMessageEntity.Id);
     }
     else
     {
         if (!this.ReturnId && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
         {
             if (DbHelper.CurrentDbType == DbTypes.Oracle)
             {
                 sqlBuilder.SetFormula(BaseMessageEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL ");
             }
             if (DbHelper.CurrentDbType == DbTypes.DB2)
             {
                 sqlBuilder.SetFormula(BaseMessageEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper());
             }
         }
         else
         {
             if (this.Identity && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
             {
                 if (string.IsNullOrEmpty(baseMessageEntity.Id))
                 {
                     if (string.IsNullOrEmpty(sequence))
                     {
                         BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
                         sequence = sequenceManager.GetSequence(this.CurrentTableName);
                     }
                     baseMessageEntity.Id = sequence;
                 }
                 sqlBuilder.SetValue(BaseMessageEntity.FieldId, baseMessageEntity.Id);
             }
         }
     }
     this.SetEntity(sqlBuilder, baseMessageEntity);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(BaseMessageEntity.FieldCreateUserId, UserInfo.Id);
         sqlBuilder.SetValue(BaseMessageEntity.FieldCreateBy, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(BaseMessageEntity.FieldCreateOn);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(BaseMessageEntity.FieldModifiedUserId, UserInfo.Id);
         sqlBuilder.SetValue(BaseMessageEntity.FieldModifiedBy, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(BaseMessageEntity.FieldModifiedOn);
     if (this.Identity && (DbHelper.CurrentDbType == DbTypes.SqlServer || DbHelper.CurrentDbType == DbTypes.Access))
     {
         sequence = sqlBuilder.EndInsert().ToString();
     }
     else
     {
         sqlBuilder.EndInsert();
     }
     return sequence;
 }
        /// <summary>
        /// 添加实体
        /// </summary>
        /// <param name="baseSequenceEntity">实体</param>
        public string AddEntity(BaseSequenceEntity baseSequenceEntity)
        {
            string sequence = string.Empty;

            this.Identity = false;
            if (baseSequenceEntity.Id != null)
            {
                sequence = baseSequenceEntity.Id.ToString();
            }
            SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId);

            sqlBuilder.BeginInsert(this.CurrentTableName, BaseSequenceEntity.FieldId);
            if (!this.Identity)
            {
                if (string.IsNullOrEmpty(baseSequenceEntity.Id))
                {
                    sequence = BaseBusinessLogic.NewGuid();
                    baseSequenceEntity.Id = sequence;
                }
                sqlBuilder.SetValue(BaseSequenceEntity.FieldId, baseSequenceEntity.Id);
            }
            else
            {
                if (!this.ReturnId && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
                {
                    if (DbHelper.CurrentDbType == DbTypes.Oracle)
                    {
                        sqlBuilder.SetFormula(BaseSequenceEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL ");
                    }
                    if (DbHelper.CurrentDbType == DbTypes.DB2)
                    {
                        sqlBuilder.SetFormula(BaseSequenceEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper());
                    }
                }
                else
                {
                    if (this.Identity && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
                    {
                        if (string.IsNullOrEmpty(baseSequenceEntity.Id))
                        {
                            if (string.IsNullOrEmpty(sequence))
                            {
                                BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
                                sequence = sequenceManager.GetSequence(this.CurrentTableName);
                            }
                            baseSequenceEntity.Id = sequence;
                        }
                        sqlBuilder.SetValue(BaseSequenceEntity.FieldId, baseSequenceEntity.Id);
                    }
                }
            }
            this.SetEntity(sqlBuilder, baseSequenceEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(BaseSequenceEntity.FieldCreateUserId, UserInfo.Id);
                sqlBuilder.SetValue(BaseSequenceEntity.FieldCreateBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(BaseSequenceEntity.FieldCreateOn);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(BaseSequenceEntity.FieldModifiedUserId, UserInfo.Id);
                sqlBuilder.SetValue(BaseSequenceEntity.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(BaseSequenceEntity.FieldModifiedOn);
            if (this.Identity && (DbHelper.CurrentDbType == DbTypes.SqlServer || DbHelper.CurrentDbType == DbTypes.Access))
            {
                sequence = sqlBuilder.EndInsert().ToString();
            }
            else
            {
                sqlBuilder.EndInsert();
            }
            return(sequence);
        }
        public virtual bool BeforeAutoStatr(string id)
        {
            // 3:按年生成单据编号。
            string sequenceCode = string.Empty;
            // 1:状态为空的、草稿状态、被退回状态的,才可以启动工作流
            string auditStatus = this.GetProperty(id, BaseBusinessLogic.FieldAuditStatus);
            if (string.IsNullOrEmpty(auditStatus)
                    || auditStatus.Equals(AuditStatus.Draft.ToString()))
            {
                /*
                if (!string.IsNullOrEmpty(entity.Source))
                {
                    if (newsEntity.Source.Equals("html"))
                    {
                        if (newsEntity.Contents.IndexOf("#DayCode#") > 0)
                        {
                            sequenceName = DateTime.Now.ToString("yyyyMMdd") + "_" + newsEntity.CategoryCode;
                            sequenceCode = DateTime.Now.ToString("yyyyMMdd") + "_" + sequenceManager.GetSequence(sequenceName, 1, 3, true);
                            entity.Contents = newsEntity.Contents.Replace("#DayCode#", sequenceCode);
                            entity.Code = sequenceCode;
                        }
                    }
                }
                */
                string sequenceName = this.CurrentTableName;
                BaseSequenceManager sequenceManager = new BaseSequenceManager(this.DbHelper, this.UserInfo);
                // 没系统编号,自己生成一个编号
                if (string.IsNullOrEmpty(sequenceCode))
                {
                    sequenceCode = sequenceManager.GetSequence(sequenceName, 1, 6, true);
                    // newsEntity.Code = sequenceCode;
                }
            }

            // 4:修改单据表的状态,这里是成功了,才可以修改状态
            // newsEntity.AuditStatus = AuditStatus.StartAudit.ToString();
            // newsEntity.AuditStatusName = AuditStatus.StartAudit.ToDescription();
            // 5:这里需要重新走流程后才可以生效
            // newsEntity.Enabled = 0;
            List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
            parameters.Add(new KeyValuePair<string, object>(BaseBusinessLogic.FieldEnabled, 0));
            parameters.Add(new KeyValuePair<string, object>(BaseBusinessLogic.FieldDeletionStateCode, 0));
            parameters.Add(new KeyValuePair<string, object>(BaseBusinessLogic.FieldAuditStatus, AuditStatus.StartAudit.ToString()));
            if (!string.IsNullOrEmpty(sequenceCode))
            {
                parameters.Add(new KeyValuePair<string, object>(BaseBusinessLogic.FieldCode, sequenceCode));
            }
            this.SetProperty(new KeyValuePair<string, object>(this.PrimaryKey, id), parameters);
            return true;
        }
 /// <summary>
 /// 添加实体
 /// </summary>
 /// <param name="workFlowActivityEntity">实体</param>
 public string AddEntity(BaseWorkFlowStepEntity workFlowActivityEntity)
 {
     string sequence = string.Empty;
     if (workFlowActivityEntity.SortCode == null || workFlowActivityEntity.SortCode == 0)
     {
         BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
         sequence = sequenceManager.GetSequence(this.CurrentTableName);
         workFlowActivityEntity.SortCode = int.Parse(sequence);
     }
     SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId);
     sqlBuilder.BeginInsert(this.CurrentTableName, BaseWorkFlowStepEntity.FieldId);
     if (!this.Identity)
     {
         sqlBuilder.SetValue(BaseWorkFlowStepEntity.FieldId, workFlowActivityEntity.Id);
     }
     else
     {
         if (!this.ReturnId && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
         {
             if (DbHelper.CurrentDbType == DbTypes.Oracle)
             {
                 sqlBuilder.SetFormula(BaseWorkFlowStepEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL ");
             }
             if (DbHelper.CurrentDbType == DbTypes.DB2)
             {
                 sqlBuilder.SetFormula(BaseWorkFlowStepEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper());
             }
         }
         else
         {
             if (this.Identity && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
             {
                 if (workFlowActivityEntity.Id == null)
                 {
                     if (string.IsNullOrEmpty(sequence))
                     {
                         BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
                         sequence = sequenceManager.GetSequence(this.CurrentTableName);
                     }
                     workFlowActivityEntity.Id = int.Parse(sequence);
                 }
                 sqlBuilder.SetValue(BaseWorkFlowStepEntity.FieldId, workFlowActivityEntity.Id);
             }
         }
     }
     this.SetEntity(sqlBuilder, workFlowActivityEntity);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(BaseWorkFlowStepEntity.FieldCreateUserId, UserInfo.Id);
         sqlBuilder.SetValue(BaseWorkFlowStepEntity.FieldCreateBy, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(BaseWorkFlowStepEntity.FieldCreateOn);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(BaseWorkFlowStepEntity.FieldModifiedUserId, UserInfo.Id);
         sqlBuilder.SetValue(BaseWorkFlowStepEntity.FieldModifiedBy, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(BaseWorkFlowStepEntity.FieldModifiedOn);
     if (DbHelper.CurrentDbType == DbTypes.SqlServer && this.Identity)
     {
         sequence = sqlBuilder.EndInsert().ToString();
     }
     else
     {
         sqlBuilder.EndInsert();
     }
     return sequence;
 }
Beispiel #9
0
 /// <summary>
 /// 重新设置表的排序码
 /// </summary>
 /// <returns>影响行数</returns>
 public virtual int ResetSortCode()
 {
     int returnValue = 0;
     DataTable dataTable = this.GetDataTable(BaseBusinessLogic.FieldSortCode);
     BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper);
     string[] sortCode = sequenceManager.GetBatchSequence(this.CurrentTableName, dataTable.Rows.Count);
     int i = 0;
     foreach (DataRow dataRow in dataTable.Rows)
     {
         returnValue += this.SetProperty(dataRow[BaseBusinessLogic.FieldId].ToString(), new KeyValuePair<string, object>(BaseBusinessLogic.FieldSortCode, sortCode[i]));
         i++;
     }
     return returnValue;
 }
Beispiel #10
0
 /// <summary>
 /// 重置排序码
 /// </summary>
 /// <param name="ids">主键数组</param>
 /// <returns>影响行数</returns>
 public int BatchSetSortCode(string[] ids)
 {
     int returnValue = 0;
     BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper);
     string[] sortCodes = sequenceManager.GetBatchSequence(this.CurrentTableName, ids.Length);
     for (int i = 0; i < ids.Length; i++)
     {
         returnValue += this.SetProperty(ids[i], new KeyValuePair<string, object>(BaseBusinessLogic.FieldSortCode, sortCodes[i]));
     }
     return returnValue;
 }
Beispiel #11
0
 /// <summary>
 /// 重置排序码
 /// </summary>
 public override int ResetSortCode()
 {
     int returnValue = 0;
     DataTable dataTable = this.GetDataTable();
     string id = string.Empty;
     string sortCode = string.Empty;
     foreach (DataRow dataRow in dataTable.Rows)
     {
         id = dataRow[BaseStaffEntity.FieldId].ToString();
         BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper);
         sortCode = sequenceManager.GetSequence(BaseStaffEntity.TableName);
         returnValue += this.SetProperty(id, new KeyValuePair<string, object>(BaseStaffEntity.FieldSortCode, sortCode));
     }
     return returnValue;
 }
 /// <summary>
 /// 重置排序码
 /// </summary>
 /// <param name="parentId">父节点主键</param>
 public int ResetSortCode(string parentId)
 {
     int returnValue = 0;
     DataTable dataTable = this.GetDataTableByParent(parentId);
     string id = string.Empty;
     BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper);
     string[] sortCode = sequenceManager.GetBatchSequence(BaseModuleEntity.TableName, dataTable.Rows.Count);
     int i = 0;
     foreach (DataRow dataRow in dataTable.Rows)
     {
         id = dataRow[BaseModuleEntity.FieldId].ToString();
         returnValue += this.SetProperty(id, new KeyValuePair<string, object>(BaseModuleEntity.FieldSortCode, sortCode[i]));
         i++;
     }
     return returnValue;
 }
 /// <summary>
 /// 添加实体
 /// </summary>
 /// <param name="baseContactEntity">实体</param>
 public string AddEntity(BaseContactEntity baseContactEntity)
 {
     string sequence = string.Empty;
     sequence = baseContactEntity.Id;
     if (baseContactEntity.SortCode == 0)
     {
         BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
         sequence = sequenceManager.GetSequence(this.CurrentTableName);
         baseContactEntity.SortCode = int.Parse(sequence);
     }
     SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId);
     sqlBuilder.BeginInsert(BaseContactEntity.TableName, BaseContactEntity.FieldId);
     if (baseContactEntity.Id is string)
     {
         this.Identity = false;
     }
     if (!this.Identity)
     {
         sqlBuilder.SetValue(BaseContactEntity.FieldId, baseContactEntity.Id);
     }
     else
     {
         if (!this.ReturnId && DbHelper.CurrentDbType == DbTypes.Oracle)
         {
             sqlBuilder.SetFormula(BaseContactEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL ");
         }
         else
         {
             if (this.Identity && DbHelper.CurrentDbType == DbTypes.Oracle)
             {
                 if (string.IsNullOrEmpty(sequence))
                 {
                     BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
                     sequence = sequenceManager.GetSequence(this.CurrentTableName);
                 }
                 baseContactEntity.Id = sequence;
                 sqlBuilder.SetValue(BaseContactEntity.FieldId, baseContactEntity.Id);
             }
         }
     }
     this.SetEntity(sqlBuilder, baseContactEntity);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(BaseContactEntity.FieldCreateUserId, UserInfo.Id);
         sqlBuilder.SetValue(BaseContactEntity.FieldCreateBy, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(BaseContactEntity.FieldCreateOn);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(BaseContactEntity.FieldModifiedUserId, UserInfo.Id);
         sqlBuilder.SetValue(BaseContactEntity.FieldModifiedBy, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(BaseContactEntity.FieldModifiedOn);
     if (DbHelper.CurrentDbType == DbTypes.SqlServer && this.Identity)
     {
         sequence = sqlBuilder.EndInsert().ToString();
     }
     else
     {
         sqlBuilder.EndInsert();
     }
     return sequence;
 }
Beispiel #14
0
        /// <summary>
        /// 添加IP地址或者Mac地址
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            //检查输入是否有效
            if (!this.CheckInput())
                return;

            string statusCode=string.Empty;
            string returnValue=string.Empty;
            string[] nameArr = new string[2];
            string[] valueArr = new string[2];
            BaseParameterManager parameterManager=new BaseParameterManager(this.UserCenterDbHelper,this.UserInfo);
            BaseSequenceManager sequenceManager = new BaseSequenceManager(this.UserCenterDbHelper,this.UserInfo);
            // 增加ip
            List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
            if (!string.IsNullOrEmpty(this.txtIPAddress.Text.Trim()))
            {
                parameters.Add(new KeyValuePair<string, object>(BaseParameterEntity.FieldParameterId, this.ucUser.SelectedId));
                parameters.Add(new KeyValuePair<string, object>(BaseParameterEntity.FieldParameterContent, this.txtIPAddress.Text.Trim()));
                // 检查是否存在IpAddress
                if (parameterManager.Exists(parameters))
                {
                    statusCode = AppMessage.MSG0055;
                    MessageBox.Show(statusCode, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                BaseParameterEntity entityIp = new BaseParameterEntity();
                entityIp.Id = sequenceManager.GetSequence(BaseParameterEntity.TableName);
                entityIp.CategoryId = "IPAddress";
                entityIp.ParameterId = this.ucUser.SelectedId;
                string ipStr = this.txtIPAddress.Text.Trim();

                //Range Mask  和Single  在CheckInput 方法中使用正则表达式对输入进行验证
                //如果是地址段
                if(ipStr.IndexOf('-')>0)
                {
                    entityIp.ParameterCode = "Range";// mask range
                }
                else if (ipStr.IndexOf('*') > 0)
                { //如果有mask
                    entityIp.ParameterCode = "Mask";
                }
                else
                {
                    entityIp.ParameterCode = "Single";
                }
                //如果是单个ip

                entityIp.ParameterContent = this.txtIPAddress.Text.Trim();
                returnValue = parameterManager.AddEntity(entityIp);
                if (!string.IsNullOrEmpty(returnValue))
                {
                    statusCode = AppMessage.MSG0056;

                }
                else
                {
                    statusCode = AppMessage.MSG0057;
                }
            }
            // 增加Mac
            if (!string.IsNullOrEmpty(this.txtMacAddress.Text.Trim()))
            {
                parameters = new List<KeyValuePair<string, object>>();
                parameters.Add(new KeyValuePair<string, object>(BaseParameterEntity.FieldParameterId, this.ucUser.SelectedId));
                parameters.Add(new KeyValuePair<string, object>(BaseParameterEntity.FieldParameterContent, this.txtMacAddress.Text.Trim()));
                // 检查是否存在MacAddress
                if (parameterManager.Exists(parameters))
                {
                    statusCode = AppMessage.MSG0058;
                    MessageBox.Show(statusCode, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                BaseParameterEntity entityMac = new BaseParameterEntity();
                entityMac.Id = sequenceManager.GetSequence(BaseParameterEntity.TableName);
                entityMac.CategoryId = "MacAddress";
                entityMac.ParameterId = this.ucUser.SelectedId;
                entityMac.ParameterCode = "Single";
                entityMac.ParameterContent = this.txtMacAddress.Text.Trim();
                returnValue = parameterManager.AddEntity(entityMac);

                if (!string.IsNullOrEmpty(returnValue))
                {
                    statusCode += AppMessage.MSG0059;

                }
                else
                {
                    statusCode += AppMessage.MSG0061;
                }
            }

            MessageBox.Show(statusCode, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
            // 重新绑定listbox
            this.GetIpList(this.ucUser.SelectedId);
            this.GetMacList(this.ucUser.SelectedId);
            this.CleanScreen();
        }
Beispiel #15
0
        /// <summary>
        /// 批量重置序列
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="ids">主键数组</param>
        /// <returns>影响行数</returns>
        public int Reset(BaseUserInfo userInfo, string[] ids)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            int returnValue = 0;

            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper);
                    returnValue = sequenceManager.Reset(ids);
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.SequenceService_Reset, MethodBase.GetCurrentMethod());
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif

            return returnValue;
        }
Beispiel #16
0
        /// <summary>
        /// 添加日志
        /// </summary>
        /// <param name="logEntity">日志对象</param>
        /// <returns>主键</returns>
        public int AddEntity(BaseLogEntity logEntity)
        {
            int returnValue = 0;
            // if (!BaseSystemInfo.RecordLog)
            // {
            //    return string.Empty;
            // }
            // 由于并发控制,没有能获得有效ID的错误处理,测试一下错误发生的数量。
            // if (Log.ID.Length == 0)
            // {
            //    return returnValue;
            // }
            // string sequence = BaseSequenceManager.Instance.GetSequence(DbHelper, BaseLogEntity.TableName);
            // string sequence = BaseSequenceManager.Instance.NewGuid();
            string sequence = string.Empty;
            SQLBuilder sqlBuilder = new SQLBuilder(DbHelper);

            if (DbHelper.CurrentDbType == DbTypes.Access)
            // sqlBuilder.BeginInsert(this.CurrentTableName, "LogId", this.Identity);
            {
                // 写入日志 04-24
                dbHelper.Open(BaseSystemInfo.UserCenterDbConnection);
                // 用户已经不存在的需要整理干净,防止数据不完整。
                string sqlQuery = " INSERT INTO [BaseLog]([ProcessId],[ProcessName],[MethodId] " +
                    " ,[MethodName],[Parameters],[UserId],[UserRealName],[IPAddress],[UrlReferrer],[WebUrl],[Description],[CreateOn],[ModifiedOn]) VALUES " +
                    "( '" + logEntity.ProcessId + "','" + logEntity.ProcessName + "','" + logEntity.MethodId.ToString() + "','" + logEntity.MethodName + "','" +
                    logEntity.Parameters + "','" + logEntity.UserId + "','" + logEntity.UserRealName + "','" + logEntity.IPAddress + "','" + logEntity.UrlReferrer + "','" +
                    logEntity.WebUrl + " ','" + logEntity.Description + "'," + DbHelper.GetDBNow() + "," + DbHelper.GetDBNow() + ")";

                return dbHelper.ExecuteNonQuery(sqlQuery); ;
            }
            else
            sqlBuilder.BeginInsert(this.CurrentTableName, this.Identity);

            if (!this.Identity)
            {
                sqlBuilder.SetValue(BaseLogEntity.FieldId, logEntity.Id);
            }
            else
            {
                if (!this.ReturnId && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
                {
                    if (DbHelper.CurrentDbType == DbTypes.Oracle)
                    {
                        sqlBuilder.SetFormula(BaseLogEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL ");
                    }
                    if (DbHelper.CurrentDbType == DbTypes.DB2)
                    {
                        sqlBuilder.SetFormula(BaseLogEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper());
                    }
                }
                else
                {
                    if (this.Identity && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2))
                    {
                        if (string.IsNullOrEmpty(logEntity.Id))
                        {
                            if (string.IsNullOrEmpty(sequence))
                            {
                                BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity);
                                sequence = sequenceManager.GetSequence(this.CurrentTableName);
                            }
                            logEntity.Id = sequence;
                        }
                        sqlBuilder.SetValue(BaseLogEntity.FieldId, logEntity.Id);
                    }
                }
            }
            if (String.IsNullOrEmpty(logEntity.UserId))
            {
                logEntity.UserId = logEntity.IPAddress;
            }
            sqlBuilder.SetValue(BaseLogEntity.FieldUserId, logEntity.UserId);
            sqlBuilder.SetValue(BaseLogEntity.FieldUserRealName, logEntity.UserRealName);
            sqlBuilder.SetValue(BaseLogEntity.FieldProcessId, logEntity.ProcessId);
            sqlBuilder.SetValue(BaseLogEntity.FieldProcessName, logEntity.ProcessName);
            sqlBuilder.SetValue(BaseLogEntity.FieldMethodId, logEntity.MethodId);
            sqlBuilder.SetValue(BaseLogEntity.FieldMethodName, logEntity.MethodName);
            sqlBuilder.SetValue(BaseLogEntity.FieldParameters, logEntity.Parameters);
            sqlBuilder.SetValue(BaseLogEntity.FieldUrlReferrer, logEntity.UrlReferrer);
            sqlBuilder.SetValue(BaseLogEntity.FieldWebUrl, logEntity.WebUrl);
            sqlBuilder.SetValue(BaseLogEntity.FieldIPAddress, logEntity.IPAddress);
            sqlBuilder.SetValue(BaseLogEntity.FieldDescription, logEntity.Description);
            //if (logEntity.CreateUserId.Length == 0)
            //{
            //    logEntity.CreateUserId = logEntity.IPAddress;
            //}
            //sqlBuilder.SetValue(BaseLogEntity.FieldCreateUserId, logEntity.CreateUserId);
            sqlBuilder.SetDBNow(BaseLogEntity.FieldCreateOn);
            // return sqlBuilder.EndInsert() > 0 ? sequence : string.Empty;
            if (DbHelper.CurrentDbType == DbTypes.SqlServer)
            {
                returnValue = sqlBuilder.EndInsert();
            }
            else
            {
                sqlBuilder.EndInsert();
                if (this.ReturnId)//如果需要反回值
                {
                    returnValue = int.Parse(logEntity.Id);
                }
                else
                {
                    returnValue = 0;
                }
            }
            return returnValue;
        }
Beispiel #17
0
        /// <summary>
        /// 添加序列
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="sequenceEntity">序列实体</param>
        /// <param name="statusCode">状态码</param>
        /// <param name="statusMessage">状态信息</param>
        /// <returns>主键</returns>
        public string Add(BaseUserInfo userInfo, BaseSequenceEntity sequenceEntity, out string statusCode, out string statusMessage)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            string returnValue = string.Empty;
            statusCode = string.Empty;
            statusMessage = string.Empty;
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper, userInfo);
                    // 调用方法,并且返回运行结果
                    returnValue = sequenceManager.Add(sequenceEntity, out statusCode);
                    // returnValue = businessCardManager.Add(businessCardEntity, out statusCode);
                    statusMessage = sequenceManager.GetStateMessage(statusCode);
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.SequenceService_Add, MethodBase.GetCurrentMethod());
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif
            return returnValue;
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="workReportEntity">实体</param>
        /// <returns>主键</returns>
        private string AddEntity(BaseWorkReportEntity workReportEntity)
        {
            string returnValue = string.Empty;
            BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper);
            string sequence = sequenceManager.GetSequence(BaseWorkReportTable.TableName);
            workReportEntity.SortCode = sequence;

            //获取职员的部门主键和公司主键
            BaseStaffManager staffManager = new BaseStaffManager(DbHelper, UserInfo);
            string CompanyId = staffManager.GetProperty(workReportEntity.StaffId, BaseStaffTable.FieldCompanyId);
            string DepartmentId = staffManager.GetProperty(workReportEntity.StaffId, BaseStaffTable.FieldDepartmentId);

            SQLBuilder sqlBuilder = new SQLBuilder(DbHelper);
            sqlBuilder.BeginInsert(BaseWorkReportTable.TableName);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldId, sequence);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldCompanyId, CompanyId);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldDepartmentId, DepartmentId);
            this.SetEntity(sqlBuilder, workReportEntity);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldCreateUserId, UserInfo.Id);
            sqlBuilder.SetDBNow(BaseWorkReportTable.FieldCreateOn);
            returnValue = sqlBuilder.EndInsert() > 0 ? sequence : string.Empty;
            return returnValue;
        }
 public int Grant(string[] userIds, string[] permissionItemIds)
 {
     int returnValue = 0;
     BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper);
     string[] sequenceIds = sequenceManager.GetBatchSequence(BasePermissionEntity.TableName, userIds.Length * permissionItemIds.Length);
     BasePermissionManager permissionManager = new BasePermissionManager(DbHelper, UserInfo, this.CurrentTableName);
     for (int i = 0; i < userIds.Length; i++)
     {
         for (int j = 0; j < permissionItemIds.Length; j++)
         {
             this.Grant(permissionManager, sequenceIds[i * permissionItemIds.Length + j], userIds[i], permissionItemIds[j]);
             returnValue++;
         }
     }
     return returnValue;
 }
Beispiel #20
0
        /// <summary>
        /// 设置当前所有选中的记录为隐藏状态
        /// </summary>
        /// <returns>设置更新成功</returns>
        private bool SetInvisible()
        {
            bool returnValue = false;
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            // 检查至少要选择一个
            if (!BaseInterfaceLogic.CheckInputSelectAnyOne(this.grdSequence, "colSelected"))
            {
                return returnValue;
            }
            int selectedCount = 0;
            BaseSequenceEntity sequenceEntity = new BaseSequenceEntity();
            BaseSequenceManager sequenceManager = new BaseSequenceManager(this.UserInfo);

            foreach (DataGridViewRow dgvRow in grdSequence.Rows)
            {
                DataRow dataRow = (dgvRow.DataBoundItem as DataRowView).Row;
                if (dataRow.RowState != DataRowState.Deleted)
                {
                    if ((System.Boolean)(dgvRow.Cells["colSelected"].Value ?? false))
                    {
                        sequenceEntity = new BaseSequenceEntity(dataRow);
                        // 记录BaseSequence不能被隐藏
                        if (!sequenceEntity.FullName.Equals("BaseSequence"))
                        {
                            selectedCount++;
                            sequenceEntity.IsVisible = 0;
                            //sequenceManager.Update(sequenceEntity);该方法调用不成,所以使用了下面调用服务方法更新,待优化
                            int rowCount = DotNetService.Instance.SequenceService.Update(UserInfo, sequenceEntity, out statusCode, out statusMessage);
                        }
                        else
                        {
                            MessageBox.Show(AppMessage.Format(AppMessage.MSG0018, "BaseSequence"), AppMessage.MSG0020, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return returnValue;
                        }
                    }
                }
            }

            // 被选中记录中被设置隐藏的次数
            returnValue = selectedCount > 0;
            if (!returnValue)
            {
                MessageBox.Show(AppMessage.MSG0024, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            return returnValue;
        }