Exemple #1
0
        public async Task <bool> Can <TRequest>() where TRequest : new()
        {
            var request = new TRequest();

            var result = await _rules.Evaluate(request, FeatureInfo.For(request));

            return(result.IsAuthorized);
        }
Exemple #2
0
        public async Task <TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate <TResponse> next)
        {
            var featureInfo = new FeatureInfo(typeof(TRequest));

            if (featureInfo.Implements <IMiruJob>())
            {
                return(await next());
            }

            var result = await _rules.Evaluate(request, featureInfo);

            if (result.IsAuthorized)
            {
                return(await next());
            }

            throw new UnauthorizedException(result.FailureMessage);
        }