public virtual async Task <bool> IsAllowedAsync(IEnumerable <TKey> roles, Type resource, IConvertible permissionEnum, CancellationToken token = default(CancellationToken))
        {
            Helpers.CheckIfResourceHasAssignedPermission(resource, permissionEnum);
            var res  = _namingConvertor.GetResourceUniqueName(resource);
            var perm = _namingConvertor.GetPermissionUniqueIdentifier(permissionEnum);

            return(await _cache.LoadAsync(
                       () => _permissionStore.IsAllowedAsync(roles, res, perm, token),
                       roles,
                       perm,
                       res));
        }