/// <summary>
        /// Automatically find all (GET|POST|DELETE|PUT|PATCH)Mapping controllers and register them as endpoints
        /// </summary>
        public static void RegisterEndpoints()
        {
            int controllerCount = 0;

            foreach (var controller in Assembly.GetCallingAssembly().GetTypes())
            {
                if (controller.GetCustomAttribute <RestController>() != null)
                {
                    RestController.ExtractRequestMethods(controller);
                    controllerCount++;
                }
            }
            if (controllerCount > 0)
            {
                var eventData = new ServerEventData
                {
                    exception = null,
                    message   = $"Found {controllerCount} {(controllerCount > 1 ? "controllers" : "controller")}",
                    path      = null,
                    status    = null
                };
                onEndpointRegistrationFinished?.Invoke(eventData);
            }
        }