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