예제 #1
0
 private void PopulateItems()
 {
     PositionSummaryItem positionSummaryItem;
     foreach (AccountPosition accountPosition in this.accountPositionService.GetAccountPositions())
     {
         positionSummaryItem = new PositionSummaryItem(accountPosition.TickerSymbol, accountPosition.CostBasis, accountPosition.Shares, this.marketFeedService.GetPrice(accountPosition.TickerSymbol));
         this.Items.Add(positionSummaryItem);
     }
 }
        private void PopulateItems()
        {
            PositionSummaryItem positionSummaryItem;

            foreach (AccountPosition accountPosition in this.accountPositionService.GetAccountPositions())
            {
                positionSummaryItem = new PositionSummaryItem(accountPosition.TickerSymbol, accountPosition.CostBasis, accountPosition.Shares, this.marketFeedService.GetPrice(accountPosition.TickerSymbol));
                this.Items.Add(positionSummaryItem);
            }
        }
        private void PopulatePresentationModel()
        {
            PositionSummaryItem positionSummaryItem;

            foreach (AccountPosition accountPosition in AccountPositionSvc.GetAccountPositions())
            {
                positionSummaryItem = new PositionSummaryItem(accountPosition.TickerSymbol, accountPosition.CostBasis, accountPosition.Shares, MarketFeedSvc.GetPrice(accountPosition.TickerSymbol));
                positionSummaryItem.PriceMarketHistory = MarketHistorySvc.GetPriceHistory(accountPosition.TickerSymbol);
                PositionSummaryItems.Add(positionSummaryItem);
            }
        }
        private void PositionSummaryItems_Updated(object sender, AccountPositionModelEventArgs e)
        {
            if (e.AcctPosition != null)
            {
                PositionSummaryItem positionSummaryItem = PositionSummaryItems.First(p => p.TickerSymbol == e.AcctPosition.TickerSymbol);

                if (positionSummaryItem != null)
                {
                    positionSummaryItem.Shares    = e.AcctPosition.Shares;
                    positionSummaryItem.CostBasis = e.AcctPosition.CostBasis;
                }
            }
        }
예제 #5
0
        public PositionSummaryViewModel(IOrdersController ordersController, IEventAggregator eventAggregator, IObservablePosition observablePosition)
        {
            if (ordersController == null)
            {
                throw new ArgumentNullException("ordersController");
            }

            this.eventAggregator = eventAggregator;
            Position             = observablePosition;

            BuyCommand  = ordersController.BuyCommand;
            SellCommand = ordersController.SellCommand;

            CurrentPositionSummaryItem = new PositionSummaryItem("FAKEINDEX", 0, 0, 0);
        }
예제 #6
0
        public void ChangingSharesFiresPropertyChangeNotificationEvent()
        {
            PositionSummaryItem positionSummary = new PositionSummaryItem("FUND0", 49.99M, 50, 52.99M);

            bool sharesPropertyChanged = false;
            positionSummary.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
                                                   {
                                                       if (e.PropertyName == "Shares")
                                                           sharesPropertyChanged = true;
                                                   };

            positionSummary.Shares -= 5;

            Assert.IsTrue(sharesPropertyChanged);
        }
예제 #7
0
        public void ChangingCurrentPriceFiresPropertyChangeNotificationEvent()
        {
            PositionSummaryItem positionSummary = new PositionSummaryItem("FUND0", 49.99M, 50, 52.99M);

            bool currentPriceChanged = false;
            positionSummary.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
                                                   {
                                                       if (e.PropertyName == "CurrentPrice")
                                                           currentPriceChanged = true;
                                                   };

            positionSummary.CurrentPrice -= 5;

            Assert.IsTrue(currentPriceChanged);
        }
예제 #8
0
        public void ChangingSymbolPropertyChangeNotificationEvent()
        {
            PositionSummaryItem positionSummary = new PositionSummaryItem("AAAA", 49.99M, 50, 52.99M);

            bool propertyChanged = false;
            string lastPropertyChanged = string.Empty;

            positionSummary.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
                                                   {
                                                       propertyChanged = true;
                                                       lastPropertyChanged = e.PropertyName;
                                                   };

            positionSummary.TickerSymbol = "XXXX";

            Assert.IsTrue(propertyChanged);
            Assert.AreEqual<string>("TickerSymbol", lastPropertyChanged);
        }
예제 #9
0
        public void PositionSummaryCalculatesGainLossPercent()
        {
            decimal costBasis = 49.99M;
            decimal lastPrice = 52.99M;
            long numShares = 1000;

            PositionSummaryItem positionSummary = new PositionSummaryItem("AAAA", costBasis, numShares, lastPrice);

            Assert.AreEqual<decimal>(105901.2002M, Math.Round(positionSummary.GainLossPercent, 4));
        }
예제 #10
0
        public void PositionSummaryCalculatesCurrentMarketValue()
        {
            decimal lastPrice = 52.99M;
            long numShares = 50;

            PositionSummaryItem positionSummary = new PositionSummaryItem("AAAA", 49.99M, numShares, lastPrice);

            Assert.AreEqual<decimal>(lastPrice * numShares, positionSummary.MarketValue);
        }
 private void PopulatePresentationModel()
 {
     PositionSummaryItem positionSummaryItem;
     foreach (AccountPosition accountPosition in AccountPositionSvc.GetAccountPositions())
     {
         positionSummaryItem = new PositionSummaryItem(accountPosition.TickerSymbol, accountPosition.CostBasis, accountPosition.Shares, MarketFeedSvc.GetPrice(accountPosition.TickerSymbol));
         positionSummaryItem.PriceMarketHistory = MarketHistorySvc.GetPriceHistory(accountPosition.TickerSymbol);
         PositionSummaryItems.Add(positionSummaryItem);
     }
 }
        public void PositionSummaryStoresCollectionsOfMarketHistoryValues()
        {
            PositionSummaryItem positionSummary = new PositionSummaryItem("AAAA", 49.99M, 50, 52.99M);
            positionSummary.PriceMarketHistory.Add(new MarketHistoryItem { DateTimeMarker = new DateTime(1), Value = 1.00m });
            positionSummary.PriceMarketHistory.Add(new MarketHistoryItem { DateTimeMarker = new DateTime(2), Value = 2.00m });
            positionSummary.PriceMarketHistory.Add(new MarketHistoryItem { DateTimeMarker = new DateTime(3), Value = 30.00m });

            Assert.AreEqual<int>(3, positionSummary.PriceMarketHistory.Count);
        }