Beispiel #1
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="folderEntity">文件夹的基类表结构定义</param>
        /// <param name="statusCode">状态返回码</param>
        /// <returns>影响行数</returns>
        public int Update(CiFolderEntity folderEntity, out string statusCode)
        {
            var returnValue = 0;

            //if (DbLogic.IsModifed(DBProvider, CiFolderTable.TableName, folderEntity.Id, folderEntity.ModifiedUserId, folderEntity.ModifiedOn))
            //{
            //    // 数据已经被修改
            //    statusCode = StatusCode.ErrorChanged.ToString();
            //}
            //else
            //{
            // 检查文件夹名是否重复
            if (this.Exists(CiFolderTable.FieldParentId, folderEntity.ParentId, CiFolderTable.FieldFolderName, folderEntity.FolderName, folderEntity.Id))
            {
                // 文件夹名已重复
                statusCode = StatusCode.ErrorNameExist.ToString();
            }
            else
            {
                returnValue = this.UpdateEntity(folderEntity);
                statusCode  = returnValue == 1 ? StatusCode.OKUpdate.ToString() : StatusCode.ErrorDeleted.ToString();
            }
            //}
            return(returnValue);
        }
Beispiel #2
0
 /// <summary>
 /// 设置实体
 /// </summary>
 /// <param name="sqlBuilder">SQL生成器</param>
 /// <param name="folderEntity">实体对象</param>
 private void SetEntity(SQLBuilder sqlBuilder, CiFolderEntity folderEntity)
 {
     sqlBuilder.SetValue(CiFolderTable.FieldParentId, folderEntity.ParentId);
     sqlBuilder.SetValue(CiFolderTable.FieldFolderName, folderEntity.FolderName);
     sqlBuilder.SetValue(CiFolderTable.FieldSortCode, folderEntity.SortCode);
     sqlBuilder.SetValue(CiFolderTable.FieldDescription, folderEntity.Description);
     sqlBuilder.SetValue(CiFolderTable.FieldEnabled, folderEntity.Enabled);
 }
Beispiel #3
0
        /// <summary>
        /// Update 更新的主键
        /// </summary>
        /// <param name="folderEntity">文件夹对象</param>
        /// <returns>影响行数</returns>
        public int UpdateEntity(CiFolderEntity folderEntity)
        {
            var sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(CiFolderTable.TableName);
            this.SetEntity(sqlBuilder, folderEntity);
            sqlBuilder.SetValue(CiFolderTable.FieldModifiedUserId, UserInfo.Id);
            sqlBuilder.SetValue(CiFolderTable.FieldModifiedBy, UserInfo.RealName);
            sqlBuilder.SetDBNow(CiFolderTable.FieldModifiedOn);
            sqlBuilder.SetWhere(CiFolderTable.FieldId, folderEntity.Id);
            return(sqlBuilder.EndUpdate());
        }
        /// <summary>
        /// 获取实体
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="id">主键</param>
        /// <returns>实体</returns>
        public CiFolderEntity GetEntity(UserInfo userInfo, string id)
        {
            CiFolderEntity folderEntity = null;
            var            parameter    = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, string.Empty);

            parameter.IsAddLog = false;
            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var folderManager = new CiFolderManager(dbProvider, userInfo);
                folderEntity      = folderManager.GetEntity(id);
            });
            return(folderEntity);
        }
Beispiel #5
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="folderEntity">文件夹的基类表结构定义</param>
        /// <param name="statusCode">状态返回码</param>
        /// <returns>主键</returns>
        public string Add(CiFolderEntity folderEntity, out string statusCode)
        {
            var returnValue = string.Empty;

            // 检查文件夹名是否重复
            if (this.Exists(CiFolderTable.FieldParentId, folderEntity.ParentId, CiFolderTable.FieldFolderName, folderEntity.FolderName))
            {
                // 文件夹名已重复
                statusCode = StatusCode.ErrorNameExist.ToString();
            }
            else
            {
                returnValue = this.AddEntity(folderEntity);
                // 运行成功
                statusCode = StatusCode.OKAdd.ToString();
            }
            return(returnValue);
        }
Beispiel #6
0
        /// <summary>
        /// Add 添加的主键
        /// </summary>
        /// <param name="folderEntity">文件夹对象</param>
        /// <returns>主键</returns>
        public string AddEntity(CiFolderEntity folderEntity)
        {
            var sequence = string.Empty;

            if (folderEntity.SortCode == null || folderEntity.SortCode == 0)
            {
                var sequenceManager = new CiSequenceManager(DBProvider, this.Identity);
                sequence = sequenceManager.GetSequence(this.CurrentTableName, sequenceManager.DefaultSequence);
                folderEntity.SortCode = BusinessLogic.ConvertToNullableInt32(sequence);
            }

            this.Identity = false;
            var sqlBuilder = new SQLBuilder(DBProvider, this.Identity, this.ReturnId);

            sqlBuilder.BeginInsert(CiFolderTable.TableName, CiFolderTable.FieldId);
            if (!this.Identity)
            {
                if (string.IsNullOrEmpty(folderEntity.Id))
                {
                    sequence        = BusinessLogic.NewGuid();
                    folderEntity.Id = sequence;
                }
                sqlBuilder.SetValue(CiFolderTable.FieldId, folderEntity.Id);
            }

            this.SetEntity(sqlBuilder, folderEntity);
            sqlBuilder.SetValue(CiFolderTable.FieldCreateUserId, UserInfo.Id);
            sqlBuilder.SetValue(CiFolderTable.FieldCreateBy, UserInfo.RealName);
            sqlBuilder.SetDBNow(CiFolderTable.FieldCreateOn);
            sqlBuilder.SetValue(CiFolderTable.FieldModifiedUserId, UserInfo.Id);
            sqlBuilder.SetValue(CiFolderTable.FieldModifiedBy, UserInfo.RealName);
            sqlBuilder.SetDBNow(CiFolderTable.FieldModifiedOn);
            if (this.Identity && (DBProvider.CurrentDbType == CurrentDbType.SqlServer || DBProvider.CurrentDbType == CurrentDbType.Access))
            {
                sequence = sqlBuilder.EndInsert().ToString();
            }
            else
            {
                sqlBuilder.EndInsert();
            }

            return(sequence);
        }
Beispiel #7
0
        /// <summary>
        /// 批量进行保存
        /// </summary>
        /// <param name="dataTable">数据表</param>
        /// <returns>影响行数</returns>
        public override int BatchSave(DataTable dataTable)
        {
            var returnValue  = 0;
            var folderEntity = new CiFolderEntity();

            foreach (DataRow dataRow in dataTable.Rows)
            {
                // 删除状态
                if (dataRow.RowState == DataRowState.Deleted)
                {
                    var id = dataRow[CiFolderTable.FieldId, DataRowVersion.Original].ToString();
                    if (id.Length > 0)
                    {
                        returnValue += this.DeleteEntity(id);
                    }
                }
                // 被修改过
                if (dataRow.RowState == DataRowState.Modified)
                {
                    var id = dataRow[CiFolderTable.FieldId, DataRowVersion.Original].ToString();
                    if (id.Length > 0)
                    {
                        folderEntity.GetFrom(dataRow);
                        returnValue += this.UpdateEntity(folderEntity);
                    }
                }
                // 添加状态
                if (dataRow.RowState == DataRowState.Added)
                {
                    this.GetFrom(dataRow);
                    returnValue += this.AddEntity(folderEntity).Length > 0 ? 1 : 0;
                }
                if (dataRow.RowState == DataRowState.Unchanged)
                {
                    continue;
                }
                if (dataRow.RowState == DataRowState.Detached)
                {
                    continue;
                }
            }
            return(returnValue);
        }
        /// <summary>
        /// 更新文件夹
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="folderEntity">文件夹</param>
        /// <param name="statusCode">状态码</param>
        /// <param name="statusMessage">状态信息</param>
        /// <returns>影响行数</returns>
        public int Update(UserInfo userInfo, CiFolderEntity folderEntity, out string statusCode, out string statusMessage)
        {
            string returnCode    = string.Empty;
            string returnMessage = string.Empty;
            int    returnValue   = 0;
            var    parameter     = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, string.Empty);

            parameter.IsAddLog = false;

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var folderManager = new CiFolderManager(dbProvider, userInfo);
                returnValue       = folderManager.Update(folderEntity, out returnCode);
                returnMessage     = folderManager.GetStateMessage(returnCode);
            });
            statusCode    = returnCode;
            statusMessage = returnMessage;
            return(returnValue);
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="parentId">父主键</param>
        /// <param name="folderName">文件夹名称</param>
        /// <param name="enabled">有效</param>
        /// <param name="statusCode">状态码</param>
        /// <param name="statusMessage">状态信息</param>
        /// <returns></returns>
        public string AddByFolderName(UserInfo userInfo, string parentId, string folderName, bool enabled, out string statusCode, out string statusMessage)
        {
            string returnCode    = string.Empty;
            string returnMessage = string.Empty;
            string returnValue   = string.Empty;
            var    parameter     = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, string.Empty);

            parameter.IsAddLog = false;

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var folderEntity        = new CiFolderEntity();
                var folderManager       = new CiFolderManager(dbProvider, userInfo);
                folderEntity.ParentId   = parentId;
                folderEntity.FolderName = folderName;
                folderEntity.Enabled    = enabled ? 1: 0;
                returnValue             = folderManager.Add(folderEntity, out returnCode);
                returnMessage           = folderManager.GetStateMessage(returnCode);
            });
            statusCode    = returnCode;
            statusMessage = returnMessage;
            return(returnValue);
        }
        /// <summary>
        /// 重命名
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="id">主键</param>
        /// <param name="newName">新名称</param>
        /// <param name="enabled">有效</param>
        /// <param name="statusCode">状态码</param>
        /// <param name="statusMessage">状态信息</param>
        /// <returns>影响行数</returns>
        public int Rename(UserInfo userInfo, string id, string newName, bool enabled, out string statusCode, out string statusMessage)
        {
            string returnCode    = string.Empty;
            string returnMessage = string.Empty;
            int    returnValue   = 0;
            var    parameter     = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, string.Empty);

            parameter.IsAddLog = false;

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var folderEntity    = new CiFolderEntity();
                var folderManager   = new CiFolderManager(dbProvider, userInfo);
                DataTable dataTable = folderManager.GetDTById(id);
                folderEntity.GetFrom(dataTable);
                folderEntity.FolderName = newName;
                folderEntity.Enabled    = enabled ? 1 : 0;
                returnValue             = folderManager.Update(folderEntity, out returnCode);
                returnMessage           = folderManager.GetStateMessage(returnCode);
            });
            statusCode    = returnCode;
            statusMessage = returnMessage;
            return(returnValue);
        }