public override async Task <CommandResult> Execute()
        {
            var products = new[] { "btc", "eth", "ltc" };

            foreach (var product in products)
            {
                var price = await gdaxClient.GetProductTicker($"{product}-usd");

                await dataService.RecordPrice(product, decimal.Parse(price.Price), "gdax", DateTimeOffset.UtcNow);
            }

            return(CommandResult.SuccessfulResult);
        }
        public async Task ShowBalance()
        {
            var balanceList = new Dictionary <Currency, Balance>();

            foreach (var account in await _gdaxClient.GetCoinbaseAccount())
            {
                if (!balanceList.ContainsKey(account.Currency))
                {
                    balanceList.Add(account.Currency, new Balance {
                        Currency = account.Currency
                    });
                }

                balanceList[account.Currency].Amount += account.Balance;
            }

            foreach (var account in await _gdaxClient.GetAccounts())
            {
                if (!balanceList.ContainsKey(account.Currency))
                {
                    balanceList.Add(account.Currency, new Balance {
                        Currency = account.Currency
                    });
                }
                balanceList[account.Currency].Amount += account.Balance;
            }

            var total = 0m;

            foreach (var balance in balanceList)
            {
                switch (balance.Value.Currency)
                {
                case Currency.BTC:
                    if (balance.Value.Amount > 0)
                    {
                        var btcTicker = await _gdaxClient.GetProductTicker(ProductType.BTC_EUR);

                        total += balance.Value.Amount * btcTicker.Price;
                        Console.WriteLine($"  - {btcTicker.Price:F2} BTC");
                    }
                    break;

                case Currency.ETH:
                    if (balance.Value.Amount > 0)
                    {
                        var ethTicker = await _gdaxClient.GetProductTicker(ProductType.ETH_EUR);

                        total += balance.Value.Amount * ethTicker.Price;
                        Console.WriteLine($"  - {ethTicker.Price:F2} ETH");
                    }
                    break;

                case Currency.EUR:
                    total += balance.Value.Amount;
                    Console.WriteLine($"  - {balance.Value.Amount:F2} EUR");
                    break;

                case Currency.LTC:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            Console.WriteLine($"Total amount : {total:F2} EUR");
        }