Ejemplo n.º 1
0
        public async Task <CoinInfoResponse> GetCoinInfo(string coin)
        {
            var coinType = (CoinFamily)CoinFamily.Parse(typeof(CoinFamily), coin, true);
            var coinInfo = await cf.Run(con => coinInfoRepo.GetCoinInfo(con, coinType.ToString()));

            if (coinInfo == null || DateTime.Now.Subtract(coinInfo.Updated).TotalMinutes > 5)
            {
                coinInfo = GetCoinInfoFromCryptoCompare(coinType);
                await cf.RunTx((con, tx) => coinInfoRepo.AddCoinInfo(con, tx, coinInfo));
            }

            var response = new CoinInfoResponse
            {
                CoinType = coinInfo.CoinType.ToString(),
                Name     = coinInfo.Name,
                PriceBTC = coinInfo.PriceBTC,
                PriceUSD = coinInfo.PriceUSD
            };

            return(response);
        }