/// <summary> /// Deletes a portfolio from the account /// </summary> /// <param name="name">Name of portfolio to be deleted</param> public void DeletePortfolio(string name, List <Stock_M> stocks) { Portfolio_M selectedPortfolio = GetPortfolioByName(name); foreach (BuyOrSell_M BOS in selectedPortfolio.CurrentlyHeld()) { Stock_M stock = stocks.Find(s => BOS.StockName == s.Name); selectedPortfolio.SellStock(stock, BOS.Quantity); } _transactions.AddRange(selectedPortfolio.TransactionList); if (_portfolios.RemoveAll((p) => p.Name == name) == 0) { throw new ArgumentException("No portfolio exists with that name."); } }
private Error SellStocks(StockEvent e) { Stock_M s = _mainModel.Stocks.Find((stock) => stock.Tag == e.Name); if (s != null) { BuyOrSell_M bos = _currentPortfolio.CurrentlyHeld().Find(b => b.StockName == s.Name); if (e.Amount > bos.Quantity) { return(new Error("Selling too many stocks")); } _currentPortfolio.SellStock(s, e.Amount); } Broadcast(new PortfolioEvent("portfolio", _currentPortfolio.Name)); return(Error.None); }