protected override Task When(Command when)
 {
     // If running in debugger...
     try
     {
         _bus.Fire(when);
     }
     catch (CommandException ex)
     {
         if (ex.InnerException != null)
         {
             throw ex.InnerException;
         }
         throw;
     }
     return(Task.CompletedTask);
 }