コード例 #1
0
        public async Task DisplayRealtimeCryptoInfo([Summary("Crypto symbol to get information for")] string symbol)
        {
            try
            {
                var requestSymbol = $"{symbol}/USD";
                var price         = await _financeService.GetRealTimeStockPrice(requestSymbol);

                var quote = await _financeService.GetQuote(requestSymbol, "1day");

                var usageStats = await _financeService.GetApiUsageStats();

                var embed = new EmbedBuilder()
                            .WithTitle(quote.Name)
                            .WithColor(quote.Change > 0 ? Color.Green : Color.Red)

                            .AddField(
                    "Price",
                    $"{price.ToString("C")} {(quote.Change > 0 ? "▲" : "▼")}{quote.Change.ToString("C")} ({quote.PercentChange.ToString("F2")}%)"
                    )

                            .AddField("Trading info for last trading day", quote.Datetime.ToString("d"))

                            .AddField("Open/Close", $"{quote.Open.ToString("C")}/{quote.Close.ToString("C")}")
                            .AddField("High/Low", $"{quote.High.ToString("C")}/{quote.Low.ToString("C")}")

                            .WithFooter($"Source: twelvedata | Daily usage: {usageStats.daily_usage}/{usageStats.plan_daily_limit}")
                            .Build();

                await ReplyAsync(embed : embed);
            }
            catch (Exception)
            {
                await ReplyAsync("Unable to get information for that cryptocurrency.");
            }
        }