Example #1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                var uirScheme = _opts.RestUri.Split(':')[0];
                var host      = _opts.RestUri.Split(':')[1].Substring(2);
                var portPart  = _opts.RestUri.Split(':')[2];
                Int32.TryParse(portPart, out int port);

                var requestUri = new UriBuilder(uirScheme, host, port, "api/v0/stake_pools");

                try
                {
                    var response = await _httpClient.GetAsync(requestUri.Uri);

                    string content = await response.Content.ReadAsStringAsync();

                    if (_opts.Verbose || _opts.VerboseStakePools)
                    {
                        var currentForeground = Console.ForegroundColor;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.WriteLine(requestUri.Uri.ToString());
                        Console.WriteLine(response);
                        Console.WriteLine(content);
                        Console.WriteLine();
                        Console.ForegroundColor = currentForeground;
                    }

                    //will throw an exception if not successful
                    response.EnsureSuccessStatusCode();

                    var processedStakePools = await _processor.ProcessStakePools(content);

                    _sb.Clear();
                    _sb.AppendLine($"StakePools running on {_opts.PoolName}, at: {DateTimeOffset.Now}");
                    _sb.AppendLine();
                    _sb.AppendLine();

                    _logger.LogInformation(_sb.ToString());
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex.Message);
                }

                await Task.Delay(30000, stoppingToken);
            }

            _httpClient.Dispose();
        }
Example #2
0
        public async Task ProcessStakePools(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new StakePoolsProcessor(storage, opts);
            var stakePools = await _processor.ProcessStakePools(value);

            storage.Database.EnsureDeleted();
            Assert.True(true);
            //Assert.True(nodeStats != null, "nodeStats == null");
            //Assert.True(nodeStats.BlockRecvCnt > 0, $"BlockRecvCnt = {nodeStats.BlockRecvCnt}");
            //Assert.True(nodeStats.LastBlockTime != default, $"LastBlockTime = {nodeStats.LastBlockTime}");
        }