/// <summary>
 /// Set the concurrency limit of the filter
 /// </summary>
 /// <param name="pipe"></param>
 /// <returns></returns>
 public static Task PublishCircuitBreakerClosed(this IPipe <EventContext> pipe)
 {
     return(pipe.PublishEvent <CircuitBreakerClosed>(new object()));
 }
 /// <summary>
 /// Set the concurrency limit of the filter
 /// </summary>
 /// <param name="pipe"></param>
 /// <param name="exception"></param>
 /// <returns></returns>
 public static Task PublishCircuitBreakerOpened(this IPipe <EventContext> pipe, Exception exception)
 {
     return(pipe.PublishEvent <CircuitBreakerOpened>(new { Exception = exception }));
 }