Пример #1
0
        public async Task ViewPortfolio(IUser user = null)
        {
            user ??= Context.Message.Author;

            var portfolio = await portfolioManager.GetPortfolioAsync(user.Id);

            var fields = portfolio.Positions
                         .Select(p => new EmbedFieldBuilder()
                                 .WithName($"{p.Symbol.ToUpper()} - {p.SecurityType}")
                                 .WithValue($"Market Value: {p.MarketValue:C} Unrealized PnL: {p.UnrealizedPnl:C}"))
                         .ToList();

            fields.AddRange(new[]
            {
                new EmbedFieldBuilder().WithName("Cash").WithValue($"{portfolio.CashBalance:C}"),
                new EmbedFieldBuilder().WithName("Totals").WithValue($"**Market Value: {portfolio.MarketValue:C}**")
            });

            logger.LogInformation($"{Context.User.Username} - viewd {user?.Username ?? "self"}'s portfolio");

            var embed = new EmbedBuilder()
                        .WithTitle($"{user.Username}'s Portfolio")
                        .WithColor(Color.Gold)
                        .WithFields(fields);

            await ReplyAsync(null, false, embed.Build());
        }