예제 #1
0
 public CreatePermissionSetValidator(IPermissionSetRules rules)
 {
     RuleFor(c => c.Name)
     .NotEmpty().WithMessage("Permission set name is required.")
     .Length(1, 50).WithMessage("Permission set name must be at least 1 and at max 50 characters long.")
     .MustAsync((c, p, cancellation) => rules.IsNameUniqueAsync(c.SiteId, p))
     .WithMessage(c => $"A permission set with name {c.Name} already exists.");
 }
예제 #2
0
 public PermissionSetsController(IContextService contextService,
                                 IPermissionSetService permissionSetService,
                                 IPermissionSetRules permissionSetRules,
                                 IPermissionSetModelBuilder modelBuilder)
 {
     _contextService       = contextService;
     _permissionSetService = permissionSetService;
     _permissionSetRules   = permissionSetRules;
     _modelBuilder         = modelBuilder;
 }
예제 #3
0
        public CreateCategoryValidator(ICategoryRules rules, IPermissionSetRules permissionSetRules)
        {
            RuleFor(c => c.Name)
            .NotEmpty().WithMessage("Category name is required.")
            .Length(1, 50).WithMessage("Category name must be at least 1 and at max 50 characters long.")
            .MustAsync((c, p, cancellation) => rules.IsNameUniqueAsync(c.SiteId, p))
            .WithMessage(c => $"A category with name {c.Name} already exists.");

            RuleFor(c => c.PermissionSetId)
            .MustAsync((c, p, cancellation) => permissionSetRules.IsValidAsync(c.SiteId, p))
            .WithMessage(c => $"Permission set with id {c.PermissionSetId} does not exist.");
        }
예제 #4
0
        public UpdateForumValidator(IForumRules rules, IPermissionSetRules permissionSetRules)
        {
            RuleFor(c => c.Name)
            .NotEmpty().WithMessage("Forum name is required.")
            .Length(1, 50).WithMessage("Forum name must be at least 1 and at max 50 characters long.")
            .MustAsync((c, p, cancellation) => rules.IsNameUniqueAsync(c.SiteId, c.CategoryId, p, c.Id))
            .WithMessage(c => $"A forum with name {c.Name} already exists.");

            RuleFor(c => c.Slug)
            .NotEmpty().WithMessage("Forum slug is required.")
            .Length(1, 50).WithMessage("Forum slug must be at least 1 and at max 50 characters long.")
            .MustAsync((c, p, cancellation) => rules.IsSlugUniqueAsync(c.SiteId, p, c.Id))
            .WithMessage(c => $"A forum with slug {c.Slug} already exists.");

            RuleFor(c => c.Description)
            .Length(1, 200).WithMessage("Forum description length must be between 1 and 200 characters.")
            .When(c => !string.IsNullOrWhiteSpace(c.Description));

            RuleFor(c => c.PermissionSetId)
            .MustAsync((c, p, cancellation) => permissionSetRules.IsValidAsync(c.SiteId, p.Value))
            .WithMessage(c => $"Permission set with id {c.PermissionSetId} does not exist.")
            .When(c => c.PermissionSetId != null);
        }