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()); }