Ejemplo n.º 1
0
 public SaleWorker(
     IApiClient apiClient,
     IExchangeTrend exchangeTrend,
     ILogger <SaleWorker> logger)
 {
     _apiClient     = apiClient;
     _exchangeTrend = exchangeTrend;
     _logger        = logger;
 }
Ejemplo n.º 2
0
        public ExchangeWorker(
            IExchangeTrend exchangeTrend,
            ILogger <ExchangeWorker> logger)
        {
            try
            {
                _exchangeTrend = exchangeTrend;
                _logger        = logger;

                _hubConnection = new HubConnectionBuilder()
                                 .WithUrl(_signalrUrl)
                                 .Build();

                _hubConnection.Closed += async(error) =>
                {
                    await Task.Delay(new Random().Next(0, 5) * 1000);

                    await _hubConnection.StartAsync();
                };

                _hubConnection.On <Guid, String, Double>("CurrencyUpdate", (id, name, value) =>
                {
                    try
                    {
                        _exchangeTrend.AddCurrencyDetail(new CurrencyDetail
                        {
                            Id    = id,
                            Name  = name,
                            Value = (Decimal)value
                        });
                        _logger.LogInformation($"CurrencyUpdate: {name} [{value:F2}]");
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex.Message);
                    }
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }
        }