Exemplo n.º 1
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            ICustomerCount service = (ICustomerCount)validationContext.GetService(typeof(ICustomerCount));
            int            current_customer_number = service.GetCustomerNumber();

            if (max_number > current_customer_number)
            {
                return(ValidationResult.Success);
            }

            return(new ValidationResult($"Current number of customers is {current_customer_number}, max number of customers is {max_number}"));
        }
Exemplo n.º 2
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            ICustomerCount customerCount = (ICustomerCount)validationContext.GetService(typeof(ICustomerCount));

            current_number = customerCount.GetCustomerNumber();

            if (current_number >= max_number)
            {
                return(new ValidationResult($"Can't insert customer, current number is: {current_number} max number: {max_number}"));
            }

            return(ValidationResult.Success);
        }
Exemplo n.º 3
0
        private void GenerateMessage(FilterContext context, string event_name)
        {
            string controller = context.ActionDescriptor.RouteValues["controller"];
            string action     = context.ActionDescriptor.RouteValues["action"];

            string message = $"{event_name}: this is {controller} controller, {action} action, current number of customers is: {_customerCount.GetCustomerNumber()}";

            Debug.WriteLine(message);
        }
Exemplo n.º 4
0
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, AccessBasedOnCustomerCountRequirements requirement)
        {
            if (context.User == null)
            {
                return(Task.CompletedTask);
            }

            if (context.User.HasClaim(c => c.Type == "AgeClaim" && Convert.ToInt32(c.Value) > 18) && context.User.HasClaim(ClaimTypes.Role, "User") && _customerCount.GetCustomerNumber() < requirement.max_customer)
            {
                context.Succeed(requirement);
            }

            return(Task.CompletedTask);
        }