コード例 #1
0
        private static async Task doJob(PayGramBotClient pClient)
        {
            var res = await pClient.GetExchangeRatesAsync();

            if (res.Success)
            {
                foreach (var bc in res.Rates.Keys)
                {
                    foreach (var qc in res.Rates[bc].Values)
                    {
                        var nq = new Quote()
                        {
                            BaseCurrency  = bc,
                            QuoteCurrency = qc.QuoteCurrency,
                            Midpoint      = qc.Price
                        };
                        if (Currency.GetBySymbol(bc) == null || Currency.GetBySymbol(nq.QuoteCurrency) == null)
                        {
                            //log.Debug($"Basecurrency or quote currency could not be parsed {bc}:{nq.BaseCurrency}");
                        }
                        else
                        {
                            //log.Debug($"{nq}/{qc}");
                            ConversionProviderFactory.CacheConversionProvider.UpdateCache(nq, qc.UpdatedUTC);
                        }
                    }
                }
            }
        }
コード例 #2
0
        public CurrenciesManager(PayGramBotClient pClient, ulong updateRatesEveryMillis = 0)
        {
            this.pClient = pClient;

            if (updateRatesEveryMillis != 0)
            {
                this.updateRatesEveryMillis = updateRatesEveryMillis;
                ConversionProviderFactory.QuotesValidForMillis = updateRatesEveryMillis * 2; // we have some time to update
            }
            else
            {
                this.updateRatesEveryMillis = ConversionProviderFactory.QuotesValidForMillis;
                ConversionProviderFactory.QuotesValidForMillis *= 2; // we don't know how ofter paygram updates the rates, let's choose a large value
            }
            ConversionProviderFactory.RegisterConversionProvider(new ToDefaultCurrencyConversionProvider(Currencies.BTC));
            ConversionProviderFactory.RegisterConversionProvider(new ToDefaultCurrencyConversionProvider(Currencies.USD));
        }