Example #1
0
        public void Refresh(Environment environment)
        {
            if (environment == null || string.IsNullOrWhiteSpace(environment.Name))
            {
                throw new ArgumentNullException(nameof(environment));
            }

            try
            {
                var services = _serviceDiscovery.DiscoverServicesIn(environment);

                var results = new List <ServiceStatus>();

                foreach (var service in services)
                {
                    try
                    {
                        var status = _refreshServiceUseCase.Refresh(service);

                        results.Add(status);
                    }
                    catch (Exception e)
                    {
                        _logger.Error(e, "Could not refresh {Service}", service.Name);
                    }
                }

                if (results.Any())
                {
                    _store.Update(environment, results);
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Could not get status of {Environment}", environment.Name);
                // Swallow
            }
        }