예제 #1
0
        public async Task <bool> ValidatePermission(Role Role)
        {
            foreach (var Permission in Role.Permissions)
            {
                PermissionFilter PermissionFilter = new PermissionFilter
                {
                    Skip = 0,
                    Take = 10,
                    Code = new StringFilter {
                        Equal = Permission.Code
                    },
                    Selects = PermissionSelect.Code
                };

                int count = await UOW.PermissionRepository.Count(PermissionFilter);

                if (count == 0)
                {
                    Permission.AddError(nameof(RoleValidator), nameof(Permission.Code), ErrorCode.CodeNotExisted);
                }

                await ValidateMenu(Permission.Menu);
            }
            return(Role.Permissions.Any(s => !s.IsValidated) ? false : true);
        }
예제 #2
0
        public async Task <bool> ValidateCode(Permission Permission)
        {
            if (string.IsNullOrWhiteSpace(Permission.Code))
            {
                Permission.AddError(nameof(PermissionValidator), nameof(Permission.Code), ErrorCode.CodeEmpty);
            }
            else
            {
                if (Permission.Code.Length > 255)
                {
                    Permission.AddError(nameof(PermissionValidator), nameof(Permission.Code), ErrorCode.CodeOverLength);
                }
                PermissionFilter PermissionFilter = new PermissionFilter
                {
                    Skip = 0,
                    Take = 10,
                    Id   = new IdFilter {
                        NotEqual = Permission.Id
                    },
                    Code = new StringFilter {
                        Equal = Permission.Code
                    },
                    MenuId = new IdFilter {
                        Equal = Permission.MenuId
                    },
                    RoleId = new IdFilter {
                        Equal = Permission.RoleId
                    },
                    Selects = PermissionSelect.Code
                };

                int count = await UOW.PermissionRepository.Count(PermissionFilter);

                if (count != 0)
                {
                    Permission.AddError(nameof(PermissionValidator), nameof(Permission.Code), ErrorCode.CodeExisted);
                }
            }
            return(Permission.IsValidated);
        }
예제 #3
0
        public async Task <bool> ValidateStatus(Permission Permission)
        {
            StatusFilter StatusFilter = new StatusFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = Permission.StatusId
                },
                Selects = StatusSelect.Id
            };
            int count = await UOW.StatusRepository.Count(StatusFilter);

            if (count == 0)
            {
                Permission.AddError(nameof(PermissionValidator), nameof(Permission.Status), ErrorCode.StatusNotExisted);
            }
            return(count != 0);
        }
예제 #4
0
        public async Task <bool> ValidateId(Permission Permission)
        {
            PermissionFilter PermissionFilter = new PermissionFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = Permission.Id
                },
                Selects = PermissionSelect.Id
            };

            int count = await UOW.PermissionRepository.Count(PermissionFilter);

            if (count == 0)
            {
                Permission.AddError(nameof(PermissionValidator), nameof(Permission.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }