private async Task GetSnapshotAsync(Miner miner, CancellationToken token) { _logger.LogInformation($"Getting statistics for {miner.Name}"); try { var client = _clientFactory.Create(miner); var sw = Stopwatch.StartNew(); var minerStatistics = await client.GetStatisticsAsync(); sw.Stop(); await _snapshotService.AddAsync(new Snapshot { MinerId = miner.Id, RetrievalElapsedTime = sw.Elapsed, SnapshotTime = DateTime.UtcNow, MinerStatistics = minerStatistics }, token); _logger.LogInformation($"Saved statistics for {miner.Name} in {sw.ElapsedMilliseconds}ms"); } catch (Exception ex) { _logger.LogError(ex, $"Error getting statistics for miner {miner.Name}"); } }