public async Task AddGeneralData(CryptoCurrencyGeneralData cryptoCurrencyGeneralData)
 {
     try
     {
         await _context.CryptoCurrencyGeneralData().InsertOneAsync(cryptoCurrencyGeneralData);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Example #2
0
        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));
            }
        }