protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            Logger.Debug("Health check background service is starting");

            stoppingToken.Register(() =>
                                   Logger.Debug("Health check background service is stopping."));

            while (!stoppingToken.IsCancellationRequested)
            {
                try
                {
                    using var scope = _serviceProvider.CreateScope();
                    var serverDal          = scope.ServiceProvider.GetService <IServerDal>();
                    var cloudProviderDal   = scope.ServiceProvider.GetService <ICloudProviderDal>();
                    var healthCheckDal     = scope.ServiceProvider.GetService <IHealthCheckDal>();
                    var healthCheckManager = new HealthCheckManager(healthCheckDal, serverDal, cloudProviderDal);

                    var result = healthCheckManager.RunHealthChecks();
                    Logger.Info(
                        result ? "Health checks ran successfully" : "Health checks did not run successfully");
                }
                catch (Exception e)
                {
                    Logger.Error(e);
                }

                await Task.Delay(TimeSpan.FromMinutes(BackgroundServiceHelper.HealthCheckDelay), stoppingToken);
            }

            Logger.Debug("Health check background service is stopping.");
        }