コード例 #1
0
        /// <summary>
        /// 新增系统操作日志
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public AddOperationLogResponse AddOperationLog(AddOperationLogRequest request)
        {
            var response = new AddOperationLogResponse();

            try
            {
                var entity = new SystemOperationLogPo()
                {
                    Content = request.Content,
                    Type    = request.Type,
                };

                EntityLogger.CreateEntity(entity);

                var id = _systemOperationLogRepository.InsertReturnIdentity(entity);

                response.Id = id;
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;

                LogManager.LogicLogger.ErrorFormat("添加系统操作日志出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #2
0
        /// <summary>
        /// 保存应用授权Token
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveAppIdAuthResponse SaveAppIdAuthToken(SaveAppIdAuthRequest request)
        {
            var response = new SaveAppIdAuthResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "1";
                response.MessageText = "应用授权信息不存在";
                return(response);
            }
            try
            {
                var entity = request.Entity.As <AppIdAuthPo>();
                if (entity.Id == 0)
                {
                    if (_appIdAuthTokenRepository.Any <AppIdAuthPo>(e => e.IsValid == 1 && e.AppId == entity.AppId))
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "-1";
                        response.MessageText = "应用标识不能重复";
                        return(response);
                    }
                    EntityLogger.CreateEntity(entity);

                    entity.Id = _appIdAuthTokenRepository.InsertReturnIdentity(entity);
                }
                else
                {
                    var entitytemp = _appIdAuthTokenRepository.FindSingle <AppIdAuthPo>(entity.Id);

                    if (entitytemp == null)
                    {
                        throw new Exception("更新应用授权信息不存在");
                    }
                    EntityLogger.UpdateEntity(entity);
                    _appIdAuthTokenRepository.UpdateIgnoreColumns(entity, e => new
                    {
                        e.IsValid,
                        e.CreateTime,
                        e.CreateUserId,
                        e.SecretKey,
                        e.PrivateKey,
                        e.PublicKey
                    });
                }

                var key = entity.AppId.AddCachePrefix("AppIdAuth");

                CacheManager.RedisDefault.Del(key);
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("保存应用授权信息出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #3
0
        /// <summary>
        /// 更新启用状态
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public UpdateStatusResponse UpdateStatus(UpdateStatusRequest request)
        {
            var response = new UpdateStatusResponse();

            try
            {
                var entity = _appIdAuthTokenRepository.Find <AppIdAuthPo>(e => e.IsValid == 1 && e.Id == request.Id);

                if (entity == null)
                {
                    throw new Exception("修改应用授权不存在");
                }

                entity.Status = request.Status;
                EntityLogger.UpdateEntity(entity);

                _appIdAuthTokenRepository.UpdateColumns(entity, (e) => new { e.Status, e.UpdateTime, e.UpdateUserId });

                var key = entity.AppId.AddCachePrefix("AppIdAuth");

                CacheManager.RedisDefault.Del(key);
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("更新启用状态出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #4
0
        /// <summary>
        /// 删除系统栏目
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DelResponse Del(DelReqeust request)
        {
            var response = new DelResponse();

            try
            {
                var entity = _systemNavbarRepository.Find <SystemNavbarPo>(e => e.IsValid == 1 && e.Id == request.Id);

                if (entity == null)
                {
                    throw new Exception("删除系统栏目不存在");
                }

                EntityLogger.UpdateEntity(entity);

                entity.IsValid = 0;

                _systemNavbarRepository.UpdateColumns <SystemNavbarPo>(entity, (e) => new { e.IsValid, e.UpdateTime, e.UpdateUserId });
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();
                LogManager.LogicLogger.ErrorFormat("删除系统栏目出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #5
0
        /// <summary>
        /// 更改密码
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ChangePasswordResponse ChangePassword(ChangePasswordRequest request)
        {
            var response = new ChangePasswordResponse();

            if (request.OldPassword.IsNullOrEmpty())
            {
                response.IsSuccess   = false;
                response.MessageCode = "1";
                response.MessageText = "旧密码不能为空";
                return(response);
            }

            if (request.NewPassword.IsNullOrEmpty())
            {
                response.IsSuccess   = false;
                response.MessageCode = "2";
                response.MessageText = "新密码不能为空";
                return(response);
            }

            try
            {
                var entity = _userInfoRepository.Find <UserInfoPo>(e => e.IsValid == 1 && e.Id == request.UserId);

                if (entity == null)
                {
                    response.IsSuccess   = false;
                    response.MessageCode = "2";
                    response.MessageText = "用户不存在";
                    return(response);
                }

                if (entity.Password != request.OldPassword.GetMd5())
                {
                    response.IsSuccess   = false;
                    response.MessageCode = "3";
                    response.MessageText = "旧密码有误";
                    return(response);
                }

                entity.Password = request.NewPassword.GetMd5();

                EntityLogger.UpdateEntity(entity);

                _userInfoRepository.UpdateColumns(entity, e => new
                {
                    e.Password,
                    e.UpdateUserId,
                    e.UpdateTime
                });
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("更改密码出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #6
0
        /// <summary>
        /// 删除用户角色关联
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DelUserRoleJoinResponse DelUserRoleJoin(DelUserRoleJoinRequest request)
        {
            var response = new DelUserRoleJoinResponse();

            try
            {
                var entity = _userRoleJoinRepository.Find <UserRoleJoinPo>(e => e.IsValid == 1 && e.Id == request.Id);

                if (entity == null)
                {
                    throw new Exception("删除用户角色关联不存在");
                }

                entity.IsValid = 0;
                EntityLogger.UpdateEntity(entity);
                _userRoleJoinRepository.UpdateColumns(entity, e => new
                {
                    e.IsValid,
                    e.UpdateTime,
                    e.UpdateUserId
                });
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("删除用户角色关联出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #7
0
        /// <summary>
        /// 删除应用项目
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DelAppProjectResponse DelAppProject(DelAppProjectRequest request)
        {
            var response = new DelAppProjectResponse();

            try
            {
                var entity = _appProjectRepository.Find <AppProjectPo>(e => e.IsValid == 1 && e.Id == request.Id);

                if (entity == null)
                {
                    throw new Exception("删除应用项目不存在");
                }
                EntityLogger.UpdateEntity(entity);
                entity.IsValid = 0;

                _appProjectRepository.UpdateColumns(entity, e => new
                {
                    e.IsValid,
                    e.UpdateTime,
                    e.UpdateUserId
                });
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("");
            }

            return(response);
        }
コード例 #8
0
        /// <summary>
        /// 保存部门
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveDepartmentResponse SaveDeparment(SaveDepartmentRequest request)
        {
            var response = new SaveDepartmentResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "1";
                response.MessageText = "保存部门信息不存在";
                return(response);
            }

            try
            {
                var entity = request.Entity.As <DepartmentPo>();

                if (entity.Id == 0)
                {
                    #region 新增部门信息
                    if (_departmentRepository.Any <DepartmentPo>(e => e.IsValid == 1 && e.Name == request.Entity.Name))
                    {
                        throw new Exception("部门名称已存在");
                    }

                    EntityLogger.CreateEntity(entity);
                    entity.Id = _departmentRepository.InsertReturnIdentity(entity);
                    #endregion
                }
                else
                {
                    #region 更新部门信息
                    var entitytemp = _departmentRepository.FindSingle <DepartmentPo>(entity.Id);

                    if (entitytemp == null)
                    {
                        throw new Exception("更新部门信息不存在");
                    }

                    EntityLogger.UpdateEntity(entity);

                    _departmentRepository.UpdateIgnoreColumns(entity, e => new
                    {
                        e.IsValid,
                        e.CreateTime,
                        e.CreateUserId
                    });
                    #endregion
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();
                LogManager.LogicLogger.ErrorFormat("保存部门出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #9
0
        /// <summary>
        /// 保存系统配置
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveSysAppSettingResponse SaveSysAppSetting(SaveSysAppSettingReqeust request)
        {
            var response = new SaveSysAppSettingResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "1";
                response.MessageText = "系统配置不能为空";
                return(response);
            }

            try
            {
                var entity = request.Entity.As <SystemAppSettingsPo>();
                if (entity.Id == 0)
                {
                    if (!_systemAppSettingsRepository.Any <SystemAppSettingsPo>(e => e.IsValid == 1 && e.KeyWord == entity.KeyWord))
                    {
                        EntityLogger.CreateEntity(entity);

                        _systemAppSettingsRepository.InsertReturnIdentity(entity);
                    }
                    else
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "2";
                        response.MessageText = "Key已经存在";

                        return(response);
                    }
                }
                else
                {
                    EntityLogger.UpdateEntity(entity);

                    _systemAppSettingsRepository.UpdateIgnoreColumns(entity, e => new
                    {
                        e.IsValid,
                        e.CreateUserId,
                        e.CreateTime
                    });
                }

                //更新缓存
                var cachekey = entity.KeyWord.AddCachePrefix("systemappsetting");
                CacheManager.RedisDefault.Del(cachekey);
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();

                LogManager.LogicLogger.ErrorFormat("保存系统配置出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #10
0
        /// <summary>
        /// 保存系统栏目
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveResponse Save(SaveRequest request)
        {
            var response = new SaveResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "1";
                response.MessageText = "系统栏目参数不能为空";
                return(response);
            }

            try
            {
                var entity = request.Entity.As <SystemNavbarPo>();

                if (entity.Id == 0)
                {
                    #region 新增

                    EntityLogger.CreateEntity(entity);

                    response.Id = _systemNavbarRepository.InsertReturnIdentity <SystemNavbarPo>(entity);
                    #endregion
                }
                else
                {
                    #region 更新
                    var entitytemp = _systemNavbarRepository.FindSingle <SystemNavbarPo>(entity.Id);

                    if (entitytemp == null)
                    {
                        throw new Exception("更新系统栏目不存在");
                    }

                    EntityLogger.UpdateEntity(entity);

                    _systemNavbarRepository.UpdateIgnoreColumns(entity, e => new
                    {
                        e.IsValid,
                        e.CreateTime,
                        e.CreateUserId
                    });

                    #endregion
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();

                LogManager.LogicLogger.ErrorFormat("保存系统栏目出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #11
0
        /// <summary>
        /// 保存应用项目
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveAppProjectResponse SaveAppProject(SaveAppProjectRequest request)
        {
            var response = new SaveAppProjectResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = "参数不能为空";
                return(response);
            }
            try
            {
                var entity = request.Entity.As <AppProjectPo>();

                if (entity.Id == 0)
                {
                    if (_appProjectRepository.Any <AppProjectPo>(e => e.IsValid == 1 && e.ApplicationId == entity.ApplicationId))
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "2";
                        response.MessageText = "应用Id已存在";
                        return(response);
                    }

                    EntityLogger.CreateEntity(entity);
                    response.Id = _appProjectRepository.InsertReturnIdentity(entity);
                }
                else
                {
                    var entitytemp = _appProjectRepository.Find <AppProjectPo>(e => e.IsValid == 1 && e.Id == entity.Id);

                    if (entitytemp == null)
                    {
                        throw new Exception("更新项目不存在");
                    }

                    EntityLogger.UpdateEntity(entity);
                    _appProjectRepository.UpdateIgnoreColumns(entity, e => new
                    {
                        e.IsValid,
                        e.CreateUserId,
                        e.UpdateTime
                    });
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("");
            }

            return(response);
        }
コード例 #12
0
        /// <summary>
        /// 保存权限
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SavePermissionsResponse SavePermissions(SavePermissionsRequest request)
        {
            var response = new SavePermissionsResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "1";
                response.MessageText = "权限信息不能为空";
                return(response);
            }

            try
            {
                var entity = request.Entity.As <PermissionsPo>();

                if (entity.Id == 0)
                {
                    //新增权限
                    EntityLogger.CreateEntity(entity);

                    _permissionsRepository.InsertReturnIdentity(entity);
                }
                else
                {
                    #region 更新权限信息
                    var entitytemp = _permissionsRepository.FindSingle <PermissionsPo>(entity.Id);

                    if (entitytemp == null)
                    {
                        throw new Exception("更新权限信息不存在");
                    }

                    EntityLogger.UpdateEntity(entity);

                    _permissionsRepository.UpdateIgnoreColumns(entity, e => new
                    {
                        e.IsValid,
                        e.CreateTime,
                        e.CreateUserId
                    });
                    #endregion
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();

                LogManager.LogicLogger.ErrorFormat("保存权限出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #13
0
        /// <summary>
        /// 保存角色权限
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveRolePermissionsResponse SaveRolePermissions(SaveRolePermissionsRequest request)
        {
            var response = new SaveRolePermissionsResponse();

            request.PermissionsIds = request.PermissionsIds ?? new List <int>();

            try
            {
                var oldrolepjoinlist = _rolePermissionsJoinRepository.FindWhere <RolePermissionsJoinPo>(
                    e => e.IsValid == 1 &&
                    e.NavbarId == request.NavbarId &&
                    e.MenuId == request.MenuId &&
                    e.RoleId == request.RoleId);

                #region  除角色权限
                var delrolepjoin = oldrolepjoinlist.Where(e => !request.PermissionsIds.Contains(e.PermissionsId)).ToList();
                foreach (var item in delrolepjoin)
                {
                    item.IsValid = 0;
                    EntityLogger.UpdateEntity(item);

                    _rolePermissionsJoinRepository.UpdateColumns(item, e => new { e.IsValid, e.UpdateTime, e.UpdateUserId });
                }
                #endregion

                #region 新增角色权限
                var newrolepjoinlist = request.PermissionsIds.Where(e => oldrolepjoinlist.All(o => o.PermissionsId != e));

                foreach (var item in newrolepjoinlist)
                {
                    var entity = new RolePermissionsJoinPo
                    {
                        NavbarId      = request.NavbarId,
                        MenuId        = request.MenuId,
                        RoleId        = request.RoleId,
                        PermissionsId = item
                    };

                    EntityLogger.CreateEntity(entity);
                    _rolePermissionsJoinRepository.Insert(entity);
                }
                #endregion
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;

                LogManager.LogicLogger.ErrorFormat("保存角色权限出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #14
0
        /// <summary>
        /// 保存用户部门
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveUserDepartmentResponse SaveUserDepartment(SaveUserDepartmentRequest request)
        {
            var response = new SaveUserDepartmentResponse();

            try
            {
                var list = _userDepartmentJoinRepository.FindWhere <UserDepartmentJoinPo>(e => e.IsValid == 1 && e.UserId == request.UserId);


                if (list != null && list.Count > 0)
                {
                    var templist = list.Where(e => e.DepartmentId != request.DepartmentId);

                    foreach (var item in templist)
                    {
                        item.IsValid = 0;
                        EntityLogger.UpdateEntity(item);

                        _userDepartmentJoinRepository.UpdateColumns(item, e => new
                        {
                            e.IsValid,
                            e.UpdateUserId,
                            e.UpdateTime
                        });
                    }

                    if (request.DepartmentId == 0 || list.Any(e => e.DepartmentId == request.DepartmentId))
                    {
                        return(response);
                    }
                }

                //新增用户部门关系
                var entity = new UserDepartmentJoinPo
                {
                    UserId       = request.UserId,
                    DepartmentId = request.DepartmentId
                };

                EntityLogger.CreateEntity(entity);
                _userDepartmentJoinRepository.InsertReturnIdentity(entity);
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("保存用户部门出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #15
0
        /// <summary>
        /// 保存用户角色
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveUserRoleResponse SaveUserRole(SaveUserRoleRequest request)
        {
            var response = new SaveUserRoleResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = "用户角色不能为空";
                return(response);
            }

            try
            {
                var entity = request.Entity.As <UserRolePo>();

                if (entity.Id == 0)
                {
                    if (_userRoleRepository.Any <UserRolePo>(e => e.IsValid == 1 && e.Name == entity.Name))
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "-1";
                        response.MessageText = "用户角色不能重复";
                        return(response);
                    }

                    EntityLogger.CreateEntity(entity);
                    entity.Id = _userRoleRepository.InsertReturnIdentity(entity);
                }
                else
                {
                    var entitytemp = _userRoleRepository.FindSingle <UserRolePo>(entity.Id);

                    if (entitytemp == null)
                    {
                        throw new Exception("更新用户角色信息不存在");
                    }

                    EntityLogger.UpdateEntity(entity);
                    _userRoleRepository.UpdateIgnoreColumns(entity, e => new { e.IsValid, e.CreateTime, e.CreateUserId, });
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();
                LogManager.LogicLogger.ErrorFormat("保存用户角色出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #16
0
        public void SetUp()
        {
            context             = new TestingContext();
            dataContext         = new TestingContext();
            logger              = new EntityLogger(context);
            HttpContext.Current = new HttpMock().HttpContext;

            TearDownData();

            TestModel model = ObjectFactory.CreateTestModel();

            dataContext.Set <TestModel>().Add(model);
            entry = dataContext.Entry(model);
            dataContext.SaveChanges();
        }
コード例 #17
0
        /// <summary>
        /// 保存用户角色关联
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveUserRoleJoinResponse SaveUserRoleJoin(SaveUserRoleJoinRequest request)
        {
            var response = new SaveUserRoleJoinResponse();

            request.RoleIdList = request.RoleIdList ?? new List <int>();
            try
            {
                var olduserrolejoinlist = _userRoleJoinRepository.FindWhere <UserRoleJoinPo>(e => e.IsValid == 1 && e.UserId == request.UserId);

                #region  除角色关联
                var deluserrolejoin = olduserrolejoinlist.Where(e => !request.RoleIdList.Contains(e.RoleId)).ToList();

                foreach (var item in deluserrolejoin)
                {
                    item.IsValid = 0;
                    EntityLogger.UpdateEntity(item);

                    _userRoleJoinRepository.UpdateColumns(item, e => new { e.IsValid, e.UpdateTime, e.UpdateUserId });
                }
                #endregion

                #region 新增角色关联
                var newuserrolejoinlist = request.RoleIdList.Where(e => olduserrolejoinlist.All(o => o.RoleId != e));

                foreach (var item in newuserrolejoinlist)
                {
                    var entity = new UserRoleJoinPo
                    {
                        UserId = request.UserId,
                        RoleId = item
                    };

                    EntityLogger.CreateEntity(entity);
                    _userRoleJoinRepository.Insert(entity);
                }
                #endregion
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();
                LogManager.LogicLogger.ErrorFormat("保存用户角色关联出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #18
0
        /// <summary>
        /// 删除系统菜单
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DelSystemMenuResponse DelSystemMenu(DelSystemMenuRequest request)
        {
            var response = new DelSystemMenuResponse();

            try
            {
                var list = _systemMenuRepository.UseStoredProcedure <SystemMenuPo>("proc_SystemMenuById_select", new { Id = request.Id });

                if (list != null && list.Count > 0)
                {
                    foreach (var item in list)
                    {
                        var entity = item;
                        EntityLogger.UpdateEntity(entity);
                        entity.IsValid = 0;

                        _systemMenuRepository.UpdateColumns(entity, e => new
                        {
                            e.IsValid,
                            e.UpdateTime,
                            e.UpdateUserId
                        });
                    }
                }
                else
                {
                    throw new Exception("删除系统菜单不存在");
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.ToString();

                LogManager.LogicLogger.ErrorFormat("删除系统菜单出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #19
0
        /// <summary>
        /// Save (insert/update) a ControlledUpdateThing into the store
        /// </summary>
        /// <param name="entitiesBeingHandled">Entities already being saved further up the save stack</param>
        /// <param name="controlledUpdateThings">The ControlledUpdateThings to save</param>
        /// <param name="toSave">Entity types to cascade to, if they are loaded</param>
        internal void Save(List <Entity> entitiesBeingHandled, Flags toSave, params ControlledUpdateThing[] controlledUpdateThings)
        {
            if (controlledUpdateThings == null)
            {
                throw new ArgumentNullException("controlledUpdateThings");
            }
            Log("Save", controlledUpdateThings.Select <ControlledUpdateThing, int>(entity => entity.Identity).ToArray <int>(), EntityType.None);

            // Copy the list of entities being handled, and add this new set of entities to it.
            // We're handling those now.
            List <Entity> entitiesNowBeingHandled = new List <Entity>(entitiesBeingHandled);

            entitiesNowBeingHandled.AddRange(controlledUpdateThings);

            // Loop over each entity and save it.
            foreach (ControlledUpdateThing controlledUpdateThing in controlledUpdateThings)
            {
                using (PebblecodeUpdateContexts.PebbleAdmin(controlledUpdateThing)) {
                    // Already being saved higher up the stack?
                    if (entitiesBeingHandled.ContainsEntity(controlledUpdateThing))
                    {
                        continue;
                    }

                    // Allow derived/partial class to do extra work
                    OnBeforeSaveEntity(controlledUpdateThing);

                    bool saved = false;

                    try
                    {
                        // Save the entity
                        if (controlledUpdateThing.IsNew)
                        {
                            this.Mapper.Insert("InsertControlledUpdateThing", controlledUpdateThing);
                            saved = true;
                        }
                        else if (controlledUpdateThing.IsChanged)
                        {
                            if (this.Mapper.Update("UpdateControlledUpdateThing", controlledUpdateThing) != 1)
                            {
                                ThrowControlledUpdateThingEntityException(controlledUpdateThing.Identity);
                            }
                            saved = true;
                        }
                    }
                    catch (Exception ex)
                    {
                        throw EntityLogger.WriteUnexpectedException(
                                  ex,
                                  "Failed to insert/update Entity",
                                  Category.EntityFramework,
                                  controlledUpdateThing);
                    }

                    // Post save protocol
                    if (saved)
                    {
                        // Allow derived/partial class to do extra work
                        OnAfterSaveEntity(controlledUpdateThing);
                        try
                        {
                            VersionedEntityInfo versionInfo = this.Mapper.QueryForObject <VersionedEntityInfo>(
                                "SelectControlledUpdateThingVersionInfo",
                                controlledUpdateThing.Identity);
                            controlledUpdateThing.Reset(versionInfo);
                        }
                        catch (Exception ex)
                        {
                            throw EntityLogger.WriteUnexpectedException(
                                      ex,
                                      "Failed to reset version information",
                                      Category.EntityFramework,
                                      controlledUpdateThing);
                        }

                        //The insert/update will have resulted in a new database_update row, inform interested parties
                        RaiseModelChanged();
                    }
                }
            }
        }
コード例 #20
0
        /// <summary>
        /// 保存用户信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveUserInfoResponse SaveUserInfo(SaveUserInfoRequest request)
        {
            var response = new SaveUserInfoResponse();

            if (request.UserInfoEntity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "1";
                response.MessageText = "用户信息不能为空";
                return(response);
            }

            try
            {
                var entity = request.UserInfoEntity.As <UserInfoPo>();

                if (entity.Id == 0)
                {
                    #region 新增
                    if (_userInfoRepository.Any <UserInfoPo>(e => e.IsValid == 1 && e.LoginName == entity.LoginName))
                    {
                        throw new Exception("账号已经存在");
                    }

                    if (_userInfoRepository.Any <UserInfoPo>(e => e.IsValid == 1 && e.Email == entity.Email))
                    {
                        throw new Exception("邮箱已经存在");
                    }

                    EntityLogger.CreateEntity(entity);

                    entity.Id = _userInfoRepository.InsertReturnIdentity(entity);
                    #endregion
                }
                else
                {
                    #region 更新
                    var entitytemp = _userInfoRepository.FindSingle <UserInfoPo>(entity.Id);

                    if (entitytemp == null)
                    {
                        throw new Exception("更新用户信息不存在");
                    }

                    EntityLogger.UpdateEntity(entity);

                    _userInfoRepository.UpdateIgnoreColumns(entity, e => new { e.IsValid, e.CreateTime, e.CreateUserId, e.HeadimgUrl });
                    #endregion
                }

                response.UserInfoEntity = entity.As <UserInfoDto>();
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("登录查询出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }

            return(response);
        }
コード例 #21
0
        /// <summary>
        /// 保存用户授权Id
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveUserAppIdResponse SaveUserAppId(SaveUserAppIdRequest request)
        {
            var response = new SaveUserAppIdResponse();

            if (request.Entity == null)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = "参数不能为空";
                return(response);
            }

            try
            {
                var entity = request.Entity.As <UserAppIdAuthPo>();

                if (entity.Id == 0)
                {
                    if (_userApIdAuthRepository.Any <UserAppIdAuthPo>(e => e.IsValid == 1 && e.UserId == entity.UserId && e.AppId == entity.AppId))
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "-1";
                        response.MessageText = "不能重复授权";
                        return(response);
                    }

                    EntityLogger.CreateEntity(entity);

                    _userApIdAuthRepository.Insert(entity);
                }
                else
                {
                    var entitytemp = _userApIdAuthRepository.Find <UserAppIdAuthPo>(e => e.IsValid == 1 && e.Id == entity.Id);;

                    if (entitytemp == null)
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "-1";
                        response.MessageText = "更新不存在";
                        return(response);
                    }

                    EntityLogger.UpdateEntity(entity);

                    _userApIdAuthRepository.UpdateIgnoreColumns(entity, e => new
                    {
                        e.IsValid,
                        e.CreateTime,
                        e.CreateUserId,
                    });
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat(new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #22
0
ファイル: Command.cs プロジェクト: YHZX2013/exchange_diff
 protected virtual void SetCustomLoggingData(string key, object obj)
 {
     if (obj != null)
     {
         IPropertyChangeTracker <PropertyDefinition> propertyChangeTracker = obj as IPropertyChangeTracker <PropertyDefinition>;
         try
         {
             string value = (propertyChangeTracker == null) ? obj.ToString() : EntityLogger.GetLoggingDetails(propertyChangeTracker);
             this.SetCustomLoggingData(key, value);
         }
         catch (Exception exception)
         {
             ExWatson.SendReport(exception, ReportOptions.DoNotCollectDumps | ReportOptions.DoNotLogProcessAndThreadIds | ReportOptions.DoNotFreezeThreads, string.Empty);
         }
     }
 }
コード例 #23
0
        /// <summary>
        /// Save (insert/update) a Thing into the store
        /// </summary>
        /// <param name="entitiesBeingHandled">Entities already being saved further up the save stack</param>
        /// <param name="things">The Things to save</param>
        /// <param name="toSave">Entity types to cascade to, if they are loaded</param>
        internal void Save(List <Entity> entitiesBeingHandled, Flags toSave, params Thing[] things)
        {
            if (things == null)
            {
                throw new ArgumentNullException("things");
            }
            Log("Save", things.Select <Thing, int>(entity => entity.Identity).ToArray <int>(), EntityType.None);

            // Copy the list of entities being handled, and add this new set of entities to it.
            // We're handling those now.
            List <Entity> entitiesNowBeingHandled = new List <Entity>(entitiesBeingHandled);

            entitiesNowBeingHandled.AddRange(things);

            // Loop over each entity and save it.
            foreach (Thing thing in things)
            {
                // Already being saved higher up the stack?
                if (entitiesBeingHandled.ContainsEntity(thing))
                {
                    continue;
                }

                // Allow derived/partial class to do extra work
                OnBeforeSaveEntity(thing);

                bool saved = false;

                try
                {
                    // Save the entity
                    if (thing.IsNew)
                    {
                        this.Mapper.Insert("InsertThing", thing);
                        saved = true;
                    }
                    else if (thing.IsChanged)
                    {
                        if (this.Mapper.Update("UpdateThing", thing) != 1)
                        {
                            ThrowThingEntityException(thing.Identity);
                        }
                        saved = true;
                    }
                }
                catch (Exception ex)
                {
                    throw EntityLogger.WriteUnexpectedException(
                              ex,
                              "Failed to insert/update Entity",
                              Category.EntityFramework,
                              thing);
                }

                // Save child entities... update their key to us
                if ((toSave & EntityType.Widget) == EntityType.Widget &&
                    thing.WidgetListPopulated)
                {
                    foreach (Widget childWidget in thing.WidgetList)
                    {
                        childWidget.ThingId = thing.Identity;
                        if (!entitiesBeingHandled.ContainsEntity(childWidget))
                        {
                            if (childWidget.IsDeleted)
                            {
                                WidgetRepo.Delete(entitiesNowBeingHandled, toSave, childWidget);
                            }
                            else
                            {
                                WidgetRepo.Save(entitiesNowBeingHandled, toSave, childWidget);
                            }
                        }
                    }
                }

                // Post save protocol
                if (saved)
                {
                    // Allow derived/partial class to do extra work
                    OnAfterSaveEntity(thing);

                    thing.Reset();

                    //The insert/update will have resulted in a new database_update row, inform interested parties
                    RaiseModelChanged();
                }
            }
        }
コード例 #24
0
        /// <summary>
        /// Save (insert/update) a NodeBuilderTest into the store
        /// </summary>
        /// <param name="entitiesBeingHandled">Entities already being saved further up the save stack</param>
        /// <param name="nodeBuilderTests">The NodeBuilderTests to save</param>
        /// <param name="toSave">Entity types to cascade to, if they are loaded</param>
        internal void Save(List <Entity> entitiesBeingHandled, Flags toSave, params NodeBuilderTest[] nodeBuilderTests)
        {
            if (nodeBuilderTests == null)
            {
                throw new ArgumentNullException("nodeBuilderTests");
            }
            Log("Save", nodeBuilderTests.Select <NodeBuilderTest, int>(entity => entity.Identity).ToArray <int>(), EntityType.None);

            // Copy the list of entities being handled, and add this new set of entities to it.
            // We're handling those now.
            List <Entity> entitiesNowBeingHandled = new List <Entity>(entitiesBeingHandled);

            entitiesNowBeingHandled.AddRange(nodeBuilderTests);

            // Loop over each entity and save it.
            foreach (NodeBuilderTest nodeBuilderTest in nodeBuilderTests)
            {
                // Already being saved higher up the stack?
                if (entitiesBeingHandled.ContainsEntity(nodeBuilderTest))
                {
                    continue;
                }

                // Allow derived/partial class to do extra work
                OnBeforeSaveEntity(nodeBuilderTest);

                bool saved = false;

                try
                {
                    // Save the entity
                    if (nodeBuilderTest.IsNew)
                    {
                        this.Mapper.Insert("InsertNodeBuilderTest", nodeBuilderTest);
                        saved = true;
                    }
                    else if (nodeBuilderTest.IsChanged)
                    {
                        if (this.Mapper.Update("UpdateNodeBuilderTest", nodeBuilderTest) != 1)
                        {
                            ThrowNodeBuilderTestEntityException(nodeBuilderTest.Identity);
                        }
                        saved = true;
                    }
                }
                catch (Exception ex)
                {
                    throw EntityLogger.WriteUnexpectedException(
                              ex,
                              "Failed to insert/update Entity",
                              Category.EntityFramework,
                              nodeBuilderTest);
                }

                // Post save protocol
                if (saved)
                {
                    // Allow derived/partial class to do extra work
                    OnAfterSaveEntity(nodeBuilderTest);

                    nodeBuilderTest.Reset();

                    //The insert/update will have resulted in a new database_update row, inform interested parties
                    RaiseModelChanged();
                }
            }
        }
コード例 #25
0
        /// <summary>
        /// 保存秘钥
        /// </summary>
        /// <param name="request">参数</param>
        /// <returns></returns>
        public SaveSecretKeyResponse SaveSecretKey(SaveSecretKeyRequest request)
        {
            var response = new SaveSecretKeyResponse();

            try
            {
                if (request.Entity == null || request.Entity.Id == 0)
                {
                    response.IsSuccess   = false;
                    response.MessageCode = "1";
                    response.MessageText = "参数不能为空";
                    return(response);
                }

                var entitytemp = _appIdAuthTokenRepository.FindSingle <AppIdAuthPo>(request.Entity.Id);

                if (entitytemp == null)
                {
                    response.IsSuccess   = false;
                    response.MessageCode = "2";
                    response.MessageText = "修改不存在";
                    return(response);
                }

                entitytemp.SecretKey  = request.Entity.SecretKey;
                entitytemp.PrivateKey = request.Entity.PrivateKey;
                entitytemp.PublicKey  = request.Entity.PublicKey;

                EntityLogger.UpdateEntity(entitytemp);

                if (entitytemp.EncryptionType == 3)
                {
                    #region 检查秘钥是否合法
                    var testtxt = "mayiboy";

                    if (RsaCryption.Decrypt(request.Entity.PrivateKey, RsaCryption.Encrypt(request.Entity.PublicKey, testtxt)) != testtxt)
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "4";
                        response.MessageText = "非对称加密有误";
                        return(response);
                    }
                    #endregion

                    _appIdAuthTokenRepository.UpdateColumns(entitytemp, e => new
                    {
                        e.UpdateUserId,
                        e.UpdateTime,
                        e.PrivateKey,
                        e.PublicKey
                    });
                }
                else
                {
                    #region 检查秘钥是否合法
                    if (entitytemp.EncryptionType == 1 && entitytemp.SecretKey.Length < 8)
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "3";
                        response.MessageText = "秘钥长度不能小于8";
                        return(response);
                    }
                    else if (entitytemp.EncryptionType == 2 && entitytemp.SecretKey.Length < 32)
                    {
                        response.IsSuccess   = false;
                        response.MessageCode = "4";
                        response.MessageText = "秘钥长度不能小于32";
                        return(response);
                    }
                    #endregion

                    _appIdAuthTokenRepository.UpdateColumns(entitytemp, e => new
                    {
                        e.UpdateUserId,
                        e.UpdateTime,
                        e.SecretKey,
                    });
                }

                var key = entitytemp.AppId.AddCachePrefix("AppIdAuth");

                CacheManager.RedisDefault.Del(key);
            }
            catch (Exception ex)
            {
                response.IsSuccess   = false;
                response.MessageCode = "-1";
                response.MessageText = ex.Message;
                LogManager.LogicLogger.ErrorFormat("保存秘钥出错:{0}", new { request, err = ex.ToString() }.ToJson());
            }
            return(response);
        }
コード例 #26
0
        /// <summary>
        /// Save (insert/update) a Widget into the store
        /// </summary>
        /// <param name="entitiesBeingHandled">Entities already being saved further up the save stack</param>
        /// <param name="widgets">The Widgets to save</param>
        /// <param name="toSave">Entity types to cascade to, if they are loaded</param>
        internal void Save(List <Entity> entitiesBeingHandled, Flags toSave, params Widget[] widgets)
        {
            if (widgets == null)
            {
                throw new ArgumentNullException("widgets");
            }
            Log("Save", widgets.Select <Widget, int>(entity => entity.Identity).ToArray <int>(), EntityType.None);

            // Copy the list of entities being handled, and add this new set of entities to it.
            // We're handling those now.
            List <Entity> entitiesNowBeingHandled = new List <Entity>(entitiesBeingHandled);

            entitiesNowBeingHandled.AddRange(widgets);

            // Loop over each entity and save it.
            foreach (Widget widget in widgets)
            {
                // Already being saved higher up the stack?
                if (entitiesBeingHandled.ContainsEntity(widget))
                {
                    continue;
                }

                // Allow derived/partial class to do extra work
                OnBeforeSaveEntity(widget);

                // Save parent entity... so we can update our key to it
                if ((toSave & EntityType.Thing) == EntityType.Thing &&
                    widget.ThingPopulated)
                {
                    if (!entitiesBeingHandled.ContainsEntity(widget.Thing))
                    {
                        ThingRepo.Save(entitiesNowBeingHandled, toSave, widget.Thing);
                        widget.ThingId = widget.Thing.Identity;
                    }
                }

                bool saved = false;

                try
                {
                    // Save the entity
                    if (widget.IsNew)
                    {
                        this.Mapper.Insert("InsertWidget", widget);
                        saved = true;
                    }
                    else if (widget.IsChanged)
                    {
                        if (this.Mapper.Update("UpdateWidget", widget) != 1)
                        {
                            ThrowWidgetEntityException(widget.Identity);
                        }
                        saved = true;
                    }
                }
                catch (Exception ex)
                {
                    throw EntityLogger.WriteUnexpectedException(
                              ex,
                              "Failed to insert/update Entity",
                              Category.EntityFramework,
                              widget);
                }

                // Save child entities... update their key to us
                if ((toSave & EntityType.FieldTest) == EntityType.FieldTest &&
                    widget.FieldTestListUsingForeignKeyFieldPopulated)
                {
                    foreach (FieldTest childFieldTest in widget.FieldTestListUsingForeignKeyField)
                    {
                        childFieldTest.ForeignKeyField = widget.Identity;
                        if (!entitiesBeingHandled.ContainsEntity(childFieldTest))
                        {
                            if (childFieldTest.IsDeleted)
                            {
                                FieldTestRepo.Delete(entitiesNowBeingHandled, toSave, childFieldTest);
                            }
                            else
                            {
                                FieldTestRepo.Save(entitiesNowBeingHandled, toSave, childFieldTest);
                            }
                        }
                    }
                }

                // Save child entities... update their key to us
                if ((toSave & EntityType.FieldTest) == EntityType.FieldTest &&
                    widget.FieldTestListUsingForeignKeyFieldNullablePopulated)
                {
                    foreach (FieldTest childFieldTest in widget.FieldTestListUsingForeignKeyFieldNullable)
                    {
                        childFieldTest.ForeignKeyFieldNullable = widget.Identity;
                        if (!entitiesBeingHandled.ContainsEntity(childFieldTest))
                        {
                            if (childFieldTest.IsDeleted)
                            {
                                FieldTestRepo.Delete(entitiesNowBeingHandled, toSave, childFieldTest);
                            }
                            else
                            {
                                FieldTestRepo.Save(entitiesNowBeingHandled, toSave, childFieldTest);
                            }
                        }
                    }
                }

                // Post save protocol
                if (saved)
                {
                    // Allow derived/partial class to do extra work
                    OnAfterSaveEntity(widget);

                    widget.Reset();

                    //The insert/update will have resulted in a new database_update row, inform interested parties
                    RaiseModelChanged();
                }
            }
        }