예제 #1
0
        /// <summary>
        ///  add by masu 2016年3月17日09:10:11 批量更新
        /// </summary>
        /// <typeparam name="TEntity"> 要注册的类型 </typeparam>
        /// <param name="entity"> 要注册的对象 </param>
        public virtual OperationResult Update <TEntity>(IEnumerable <TEntity> entities) where TEntity : EntityBase
        {
            string exMsg = string.Empty;

            try
            {
                using (iCMSDbContext ctx = new iCMSDbContext())
                {
                    // EntityState state;
                    //不跟踪变化,提高效率
                    ctx.Configuration.AutoDetectChangesEnabled = false;
                    foreach (TEntity entity in entities)
                    {
                        if (ctx.Entry(entity).State == EntityState.Detached)
                        {
                            ctx.Entry(entity).State = EntityState.Modified;
                        }
                    }

                    ctx.SaveChanges();



                    return(new OperationResult(EnumOperationResultType.Success, "操作成功!"));
                }
            }
            catch (Exception ex)
            {
                exMsg = ex.Message;
            }
            return(new OperationResult(EnumOperationResultType.Error, exMsg));
        }
예제 #2
0
        /// <summary>
        /// 角色赋权
        /// </summary>
        /// <param name="Parameter"></param>
        /// <returns></returns>
        public BaseResponse <bool> RoleAuthorization(RoleAuthorizationParameter Parameter)
        {
            BaseResponse <bool> result = new BaseResponse <bool>();

            try
            {
                if (Parameter.Module == null)
                {
                    Parameter.Module = new List <string>();
                }

                Validate validate = new Validate(userRepository, roleRepository);

                result = validate.ValidateRoleAuthorizationParameter(Parameter.RoleCode);
                if (!result.IsSuccessful)
                {
                    return(result);
                }

                using (var dataContext = new iCMSDbContext())
                {
                    dataContext.Configuration.AutoDetectChangesEnabled = false;
                    var roleModuleList =
                        (from p in dataContext.RoleModule
                         where p.RoleCode == Parameter.RoleCode
                         select p);
                    foreach (var item in roleModuleList)
                    {
                        dataContext.Entry(item).State = EntityState.Deleted;
                    }
                    var addRoleModuleList =
                        (from p in Parameter.Module
                         select new RoleModule
                    {
                        RoleCode = Parameter.RoleCode,
                        ModuleCode = p,
                    });
                    foreach (var item in addRoleModuleList)
                    {
                        dataContext.Entry(item).State = EntityState.Added;
                    }
                    dataContext.SaveChanges();
                }

                result.IsSuccessful = true;
                return(result);
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(e);
                result.IsSuccessful = false;
                result.Code         = "004021";
                return(result);
            }
        }
예제 #3
0
        /// <summary>
        ///  更新
        /// </summary>
        /// <typeparam name="TEntity"> 要注册的类型 </typeparam>
        /// <param name="entity"> 要注册的对象 </param>
        public virtual OperationResult Update <TEntity>(TEntity entity) where TEntity : EntityBase
        {
            string exMsg = string.Empty;

            try
            {
                using (iCMSDbContext ctx = new iCMSDbContext())
                {
                    if (ctx.Entry(entity).State == EntityState.Detached)
                    {
                        ctx.Set <TEntity>().Attach(entity);
                    }

                    ctx.Entry(entity).State = EntityState.Modified;
                    ctx.SaveChanges();


                    //try
                    //{
                    //    #region 云推送添加
                    //    BaseCloudService cloud = BaseCloudService.GetInstance();
                    //    cloud.SyncInfo(entity, EnumCloudDataOperation.Update);
                    //    #endregion
                    //}
                    //catch (Exception ex)
                    //{
                    //    LogHelper.WriteLog(ex);
                    //}
                    //finally
                    //{

                    //}


                    #region 云平台修改 Multi Thread

                    //Thread thread = new Thread(YunyiThreadHelper.YunyiUpdate);
                    //thread.Start(entity);

                    #endregion

                    return(new OperationResult(EnumOperationResultType.Success, "操作成功!"));
                }
            }
            catch (Exception ex)
            {
                exMsg = ex.Message;
            }
            return(new OperationResult(EnumOperationResultType.Error, exMsg));
        }
예제 #4
0
        /// <summary>
        /// 事务操作
        /// </summary>
        /// <param name="models"></param>
        /// <returns></returns>
        public OperationResult TranMethod(Dictionary <EntityBase, EntityState> models)
        {
            string exMsg = string.Empty;

            try
            {
                using (iCMSDbContext ctx = new iCMSDbContext())
                {
                    foreach (var model in models)
                    {
                        ctx.Entry(model.Key).State = model.Value;
                    }

                    ctx.SaveChanges();

                    return(new OperationResult(EnumOperationResultType.Success, "操作成功!"));
                }
            }
            catch (Exception ex)
            {
                exMsg = ex.Message;
            }
            finally
            {
                // Context.Configuration.AutoDetectChangesEnabled = true;
            }
            return(new OperationResult(EnumOperationResultType.Error, exMsg));
        }
예제 #5
0
        /// <summary>
        /// 批量删除
        /// </summary>
        /// <typeparam name="TEntity"> 要注册的类型 </typeparam>
        /// <param name="entities"> 要注册的对象集合 </param>
        public virtual OperationResult Delete <TEntity>(IEnumerable <TEntity> entities) where TEntity : EntityBase
        {
            string exMsg = string.Empty;

            try
            {
                using (iCMSDbContext ctx = new iCMSDbContext())
                {
                    foreach (TEntity entity in entities)
                    {
                        ctx.Entry(entity).State = EntityState.Deleted;
                    }
                    ctx.SaveChanges();



                    return(new OperationResult(EnumOperationResultType.Success, "操作成功!"));
                }
            }
            catch (Exception ex)
            {
                exMsg = ex.Message;
            }
            finally
            {
                // Context.Configuration.AutoDetectChangesEnabled = true;
            }
            return(new OperationResult(EnumOperationResultType.Error, exMsg));
        }
예제 #6
0
        /// <summary>
        /// 角色添加
        /// 修改人:张辽阔
        /// 修改时间:2016-11-08
        /// 修改记录:修改IsDeault和IsShow的值
        ///
        /// 修改人:王龙杰
        /// 修改时间:2017-10-13
        /// 修改记录:添加角色同时添加角色附权
        /// </summary>
        /// <param name="Parameter"></param>
        /// <returns></returns>
        public BaseResponse <bool> AddRoleInfo(AddRoleParameter Parameter)
        {
            BaseResponse <bool> result = new BaseResponse <bool>();

            try
            {
                using (iCMSDbContext dataContext = new iCMSDbContext())
                {
                    Validate validate = new Validate(userRepository, roleRepository);
                    result = validate.ValidateAddRoleParams(Parameter);
                    if (!result.IsSuccessful)
                    {
                        return(result);
                    }
                    Role role = new Role()
                    {
                        AddDate  = DateTime.Now,
                        RoleName = Parameter.RoleName,
                        RoleCode = Parameter.RoleCode,
                        //张辽阔 2016-11-08 修改
                        IsDeault = Parameter.IsDeault,
                        IsShow   = Parameter.IsShow,
                    };
                    OperationResult operationResult = dataContext.Role.AddNew <Role>(dataContext, role);
                    if (operationResult.ResultType == EnumOperationResultType.Success)
                    {
                        //添加角色附权 王龙杰 2017-10-13
                        dataContext.Configuration.AutoDetectChangesEnabled = false;
                        var addRoleModuleList =
                            (from p in Parameter.Module
                             select new RoleModule
                        {
                            RoleCode = Parameter.RoleCode,
                            ModuleCode = p,
                        });
                        foreach (var item in addRoleModuleList)
                        {
                            dataContext.Entry(item).State = EntityState.Added;
                        }
                        dataContext.SaveChanges();

                        result.IsSuccessful = true;
                        return(result);
                    }
                    else
                    {
                        result.IsSuccessful = false;
                        result.Code         = "003961";
                        return(result);
                    }
                }
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(e);
                result.IsSuccessful = false;
                result.Code         = "003961";
                return(result);
            }
        }
예제 #7
0
 /// <summary>
 /// 创建人:张辽阔
 /// 创建时间:2016-10-27
 /// 创建记录:删除多条数据
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="source"></param>
 /// <param name="entities">要删除的对象集合</param>
 /// <returns></returns>
 public static OperationResult Delete <TEntity>(this DbSet <TEntity> source, iCMSDbContext context, IEnumerable <TEntity> entities) where TEntity : EntityBase
 {
     //不跟踪变化,提高效率
     context.Configuration.AutoDetectChangesEnabled = false;
     foreach (TEntity entity in entities)
     {
         context.Entry(entity).State = EntityState.Deleted;
     }
     context.SaveChanges();
     return(new OperationResult(EnumOperationResultType.Success, "操作成功!"));
 }
예제 #8
0
        /// <summary>
        ///  删除
        /// </summary>
        /// <typeparam name="TEntity"> 要注册的类型 </typeparam>
        /// <param name="entity"> 要注册的对象 </param>
        public virtual OperationResult Delete <TEntity>(TEntity entity) where TEntity : EntityBase
        {
            string exMsg = string.Empty;

            try
            {
                using (iCMSDbContext ctx = new iCMSDbContext())
                {
                    ctx.Entry(entity).State = EntityState.Deleted;

                    ctx.SaveChanges();



                    return(new OperationResult(EnumOperationResultType.Success, "操作成功!"));
                }
            }
            catch (Exception ex)
            {
                exMsg = ex.Message;
            }
            return(new OperationResult(EnumOperationResultType.Error, exMsg));
        }
예제 #9
0
        /// <summary>
        /// 角色编辑
        /// 修改人:张辽阔
        /// 修改时间:2016-11-08
        /// 修改记录:修改IsDeault和IsShow的值
        ///
        /// 修改人:王龙杰
        /// 修改时间:2017-10-13
        /// 修改记录:编辑角色同时添加角色附权
        /// </summary>
        /// <param name="Parameter"></param>
        /// <returns></returns>
        public BaseResponse <bool> EditRoleInfo(EditRoleParameter Parameter)
        {
            BaseResponse <bool> result = new BaseResponse <bool>();

            try
            {
                #region 验证角色是否已经被使用,如果已经被使用,则不能进行角色隐藏  王颖辉 2018-01-18
                var role = roleRepository.GetByKey(Parameter.RoleID);
                if (role == null)
                {
                    result.IsSuccessful = false;
                    result.Code         = "010092";
                    return(result);
                }

                //如果本次修改为隐藏,而且角色被使用,则不能进行隐藏
                if (role.IsShow != Parameter.IsShow && role.IsShow == 1)
                {
                    var isExist = userRepository.GetDatas <User>(item => item.RoleID == role.RoleID, true).Any();
                    if (isExist)
                    {
                        result.IsSuccessful = false;
                        result.Code         = "010102";
                        return(result);
                    }
                }

                #endregion
                using (iCMSDbContext dataContext = new iCMSDbContext())
                {
                    Validate validate = new Validate(userRepository, roleRepository);

                    result = validate.ValidateEditRoleParams(Parameter);
                    if (!result.IsSuccessful)
                    {
                        return(result);
                    }
                    Role tempRoleObj = dataContext.Role
                                       .GetDatas <Role>(dataContext, p => p.RoleID == Parameter.RoleID)
                                       .FirstOrDefault();
                    tempRoleObj.RoleName = Parameter.RoleName;
                    //张辽阔 2016-11-08 添加
                    tempRoleObj.IsDeault = Parameter.IsDeault;
                    tempRoleObj.IsShow   = Parameter.IsShow;
                    OperationResult operationResult = dataContext.Role.Update <Role>(dataContext, tempRoleObj);
                    if (operationResult.ResultType == EnumOperationResultType.Success)
                    {
                        //修改角色附权 王龙杰 2017-10-13
                        dataContext.Configuration.AutoDetectChangesEnabled = false;
                        var roleModuleList =
                            (from p in dataContext.RoleModule
                             where p.RoleCode == tempRoleObj.RoleCode
                             select p);
                        foreach (var item in roleModuleList)
                        {
                            dataContext.Entry(item).State = EntityState.Deleted;
                        }
                        var addRoleModuleList =
                            (from p in Parameter.Module
                             select new RoleModule
                        {
                            RoleCode = tempRoleObj.RoleCode,
                            ModuleCode = p,
                        });
                        foreach (var item in addRoleModuleList)
                        {
                            dataContext.Entry(item).State = EntityState.Added;
                        }
                        dataContext.SaveChanges();

                        result.IsSuccessful = true;
                        return(result);
                    }
                    else
                    {
                        result.IsSuccessful = false;
                        result.Code         = "003971";
                        return(result);
                    }
                }
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(e);
                result.IsSuccessful = false;
                result.Code         = "003971";
                return(result);
            }
        }
예제 #10
0
 /// <summary>
 /// 创建人:张辽阔
 /// 创建时间:2016-10-27
 /// 创建记录:删除一条数据
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="source"></param>
 /// <param name="entity">要删除的对象</param>
 /// <returns></returns>
 public static OperationResult Delete <TEntity>(this DbSet <TEntity> source, iCMSDbContext context, TEntity entity) where TEntity : EntityBase
 {
     context.Entry(entity).State = EntityState.Deleted;
     context.SaveChanges();
     return(new OperationResult(EnumOperationResultType.Success, "操作成功!"));
 }