public Task Process(TRequest request, CancellationToken cancellationToken)
        {
            var roles = AllowedRolesAttribute.GetCustomAttributes(request.GetType(), true).Cast <AllowedRolesAttribute>().SelectMany(a => a.Roles).Union(new[] { Roles.SuperUser }).ToList();

            if (roles.Count() > 0)
            {
                _user.DemandAnyRole(roles);
            }
            else
            {
                throw new AuthenticationException($"The request '{request.GetType().Name}' has not been mapped to any roles.");
            }
            return(Task.FromResult(0));
        }