private void AddPosition(Trade trade) { //Create taxlot and position, then add to position list var taxlot = new Taxlot(trade.Ticker, trade.Shares, trade.Security.LastPrice, DateTime.Now, trade.Security, trade.Security.LastPrice); AddToPortfolioDatabase(taxlot); //Sends updated List<Taxlot> and List<Position> to MVM and PDS Messenger.Default.Send <TradeCompleteMessage>(new TradeCompleteMessage(_portfolioPositions, _portfolioTaxlots, true)); }
public void AddToPortfolioDatabase(Taxlot taxlotToAdd) { //Add to taxlot list _portfolioTaxlots.Add(taxlotToAdd); //If position with ticker exists, add the taxlot to position. if (!_portfolioPositions.Any(s => s.Ticker == taxlotToAdd.Ticker)) { _portfolioPositions.Add(new Position(taxlotToAdd, taxlotToAdd.SecurityType)); } else { foreach (var pos in _portfolioPositions.Where(s => s.Ticker == taxlotToAdd.Ticker)) { pos.Taxlots.Add(taxlotToAdd); } } }
private void AddPosition(Trade trade) { if (!_securityDatabaseList.Any(s => s.Ticker == trade.Ticker)) { _securityDatabaseList.Add(trade.Security); } //Check to confirm that shares of this security aren't already owned if (trade.Security is Stock && !_portfolioPositions.Any(s => s.Ticker == trade.Ticker)) { //Create taxlot and position, then add to position list var taxlot = new Taxlot(trade.Ticker, trade.Shares, trade.Security.LastPrice, DateTime.Now, trade.Security, trade.Security.LastPrice); var position = new Position(taxlot, trade.Security); _portfolioDatabaseService.AddToPortfolioDatabase(position); } //Ticker exists in portfolio and security is stock else if (trade.Security is Stock && _portfolioPositions.Any(s => s.Ticker == trade.Ticker)) { //Create new taxlot and add to existing position var taxlot = new Taxlot(trade.Ticker, trade.Shares, trade.Security.LastPrice, DateTime.Now, trade.Security, trade.Security.LastPrice); _portfolioDatabaseService.AddToPortfolioDatabase(taxlot); } //Ticker is not already owned and is a MutualFund else if (trade.Security is MutualFund && !_portfolioPositions.Any(s => s.Ticker == trade.Ticker)) { //Create new taxlot and add to existing position var taxlot = new Taxlot(trade.Ticker, trade.Shares, trade.Security.LastPrice, DateTime.Now, trade.Security, trade.Security.LastPrice); var position = new Position(taxlot, trade.Security); _portfolioDatabaseService.AddToPortfolioDatabase(position); } else if (trade.Security is MutualFund && _portfolioPositions.Any(s => s.Ticker == trade.Ticker)) { //Create new taxlot and add to existing position var taxlot = new Taxlot(trade.Ticker, trade.Shares, trade.Security.LastPrice, DateTime.Now, trade.Security, trade.Security.LastPrice); _portfolioDatabaseService.AddToPortfolioDatabase(taxlot); } }