public Task RunAsync(CancellationToken stoppingToken)
 {
     return(Task.Run(() =>
     {
         while (!stoppingToken.IsCancellationRequested)
         {
             router.Route(provider.State.ToArray());
             provider.GetCommand();
         }
     }
                     ));
 }