public async Task AddTicker(CoinMarketCapLatestData ticker) { try { await _context.LastestCrpytoCurrencyData().InsertOneAsync(ticker); } catch (Exception e) { Console.WriteLine(e); throw; } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { var dateTime = DateTime.Now; var listingData = await _coinMarketCapClient.CryptoCurrencyClient.GetListingLatest(1, 100, new[] { Currency.Usd }, SortField.MarketCap, SortDirection.Desc, CryptoCurrencyType.All); var cryptoIds = new List <string>(); foreach (var listElement in listingData.Data) { cryptoIds.Add(listElement.Id.ToString()); var mongoTicker = new CoinMarketCapLatestData { ListingLatestData = listElement, RecordDateTime = dateTime }; await _coinMarketCapRepository.AddTicker(mongoTicker); } var allCryptoCurrencyInfoData = await _coinMarketCapClient.CryptoCurrencyClient.GetMetaData(cryptoIds.ToArray(), new string[] {}); foreach (var cryptoData in allCryptoCurrencyInfoData.Data) { var mongoTicker = new CryptoCurrencyGeneralData { RecordDateTime = dateTime, CryptoCurrencyInfoData = cryptoData.Value }; await _coinMarketCapRepository.AddGeneralData(mongoTicker); } await Task.Delay(TimeSpan.FromMinutes(3)); } }