Exemplo n.º 1
0
        public Task <bool> Handle(CreateCommandModel request, CancellationToken cancellationToken)
        {
            // 命令验证
            if (!request.VerifyData())
            {
                // 错误信息收集
                NotifyValidationErrors(request);
                // 返回,结束当前线程
                return(Task.FromResult(false));
            }

            Infrastructure.Entitys.Permission entity = new Infrastructure.Entitys.Permission()
            {
                PermissionId       = request.PermissionId.ToString(),
                PermissionName     = request.PermissionName,
                PermissionAction   = request.PermissionAction,
                PermissionType     = request.PermissionType.EnumToInt(),
                PermissionParentId = request.PermissionParentId,
                IsValid            = request.IsValid
            };

            var existingEntity = _REPOSITORY.QueryByNameTypeParentId(entity.PermissionName, entity.PermissionType, entity.PermissionParentId);

            if (existingEntity != null && !string.IsNullOrWhiteSpace(existingEntity.PermissionId))
            {
                _Bus.RaiseEvent(new DomainNotification("Permission", "权限名称重复!"), "Permission");
                return(Task.FromResult(false));
            }
            //提交
            if (_REPOSITORY.CreatePermission(entity))
            {
                // 提交成功后,这里需要发布领域事件
                // 比如欢迎用户注册邮件呀,短信呀等
                _Bus.RaiseEvent(new Domain.Models.EventModels.Permission.CreatePermissionEventModel(entity.PermissionId.StringToGuid(),
                                                                                                    entity.PermissionName,
                                                                                                    entity.PermissionType.IntToEnum <Models.CommandModels.Permission.PermissionCommandModel.PermissionTypeEnum>(),
                                                                                                    entity.PermissionAction,
                                                                                                    entity.PermissionParentId,
                                                                                                    entity.IsValid), "Permission");
                return(Task.FromResult(true));
            }
            else
            {
                _Bus.RaiseEvent(new Notifications.DomainNotification("Permission", "数据写入失败!"), "Permission");
                return(Task.FromResult(false));
            }
        }
Exemplo n.º 2
0
        public Task <bool> Handle(UpdateCommandModel request, CancellationToken cancellationToken)
        {
            if (!request.VerifyData())
            {
                NotifyValidationErrors(request);
                return(Task.FromResult(false));
            }

            Infrastructure.Entitys.Permission entity = new Infrastructure.Entitys.Permission()
            {
                PermissionId       = request.PermissionId.ToString(),
                PermissionName     = request.PermissionName,
                PermissionAction   = request.PermissionAction,
                PermissionType     = request.PermissionType.EnumToInt(),
                PermissionParentId = request.PermissionParentId,
                IsValid            = request.IsValid
            };

            var existingEntity = _REPOSITORY.QueryByNameTypeParentId(entity.PermissionName, entity.PermissionType, entity.PermissionParentId);

            if (existingEntity != null && existingEntity.PermissionId != entity.PermissionId)
            {
                if (!existingEntity.Equals(entity))
                {
                    _Bus.RaiseEvent(new DomainNotification("Permission", "不存在该权限的信息!"), "Permission");
                    return(Task.FromResult(false));
                }
            }

            if (_REPOSITORY.UpdatePermission(entity))
            {
                _Bus.RaiseEvent(new Domain.Models.EventModels.Permission.UpdatePermissionEventModel(entity.PermissionId.StringToGuid(),
                                                                                                    entity.PermissionName,
                                                                                                    entity.PermissionType.IntToEnum <Models.CommandModels.Permission.PermissionCommandModel.PermissionTypeEnum>(),
                                                                                                    entity.PermissionAction,
                                                                                                    entity.PermissionParentId,
                                                                                                    entity.IsValid), "Permission");
                return(Task.FromResult(true));
            }
            else
            {
                _Bus.RaiseEvent(new DomainNotification("Permission", "修改权限失败!"), "Permission");
                return(Task.FromResult(false));
            }
        }