public static Portfolio GenerateDefaultPortfolio()
        {
            Security goog = new Security {Symbol = "goog"};
            Security msft = new Security {Symbol = "msft"};
            Security aapl = new Security {Symbol = "aapl"};

            Portfolio portfolio = new Portfolio
            {
                Name = "po' boy"
            };

            Account mandingo = new Account
            {
                Name = "mandingo",
                Portfolio = portfolio
            };
            AddPosition(mandingo, goog, 100M, 12.34M);
            AddPosition(mandingo, aapl, 200M, 23.45M);
            portfolio.Accounts.Add(mandingo);

            Account took = new Account
            {
                Name = "took",
                Portfolio = portfolio
            };
            AddPosition(took, msft, 100M, 34.56M);
            portfolio.Accounts.Add(took);

            return portfolio;
        }
        public static Portfolio GenerateEmptyPortfolio()
        {
            Portfolio portfolio = new Portfolio
            {
                Name = "po' boy"
            };
            Account mandingo = new Account
            {
                Name = "mandingo",
                Portfolio = portfolio
            };
            portfolio.Accounts.Add(mandingo);

            Account took = new Account
            {
                Name = "took",
                Portfolio = portfolio
            };
            portfolio.Accounts.Add(took);

            return portfolio;
        }
        public static Portfolio GenerateFundbotPortfolio()
        {
            Security xfn = new Security { Symbol = "XFN.TO" };
            Security agg = new Security { Symbol = "AGG" };
            Security xiu = new Security { Symbol = "XIU.TO" };
            Security cpd = new Security { Symbol = "CPD.TO" };
            Security efa = new Security { Symbol = "EFA" };

            Portfolio portfolio = new Portfolio
            {
                Name = Guid.NewGuid().ToString()
            };
            Account account = new Account
            {
                Name = portfolio.Name,
                Portfolio = portfolio
            };
            portfolio.Accounts.Add(account);

            AddPosition(account, xfn, 100M, 29.97M);
            AddPosition(account, agg, 27M, 1000.69M);
            AddPosition(account, xiu, 100M, 21.1M);
            AddPosition(account, cpd, 500M, 16.55M);
            AddPosition(account, efa, 100M, 68.24M);

            return portfolio;
        }
 private static void AddPosition(Account account, Security security, decimal shares, decimal price)
 {
     account.Positions.Add(new Position
     {
         Account = account,
         Shares = shares,
         Security = security
     });
     account.Transactions.Add(new Transaction
     {
         Account = account,
         Date = DateTime.UtcNow,
         Price = price,
         Security = security,
         Shares = shares,
         Type = TransactionType.Buy
     });
 }