public MainViewModel() { Messenger.Default.Register <LocalModeMessage>(this, HandleLocalModeMessage); Messenger.Default.Register <TaxlotMessage>(this, HandleTaxlotMessage); Messenger.Default.Register <PositionMessage>(this, HandlePositionsMessage); Messenger.Default.Register <TradeCompleteMessage>(this, HandleTradeCompleteMessage); Messenger.Default.Register <LimitOrderMessage>(this, HandleLimitOrderMessage); Messenger.Default.Register <StockDataResponseMessage>(this, HandleStockDataResponse); Messenger.Default.Register <PositionPricingMessage>(this, HandlePositionPricingMessage); Messenger.Default.Register <ChartResponseMessage>(this, HandleChartResponseMessage); TradeTypeStrings = new ObservableCollection <string>() { " ", "Buy", "Sell" }; TradeTermStrings = new ObservableCollection <string>() { " ", "Market", "Limit", "Stop", "Stop Limit" }; TradeDurationStrings = new ObservableCollection <string> { " ", "Day", "GTC", "Market Close", "Market Open", "Overnight" }; SecurityTypes = new ObservableCollection <Security> { new Stock(), new MutualFund() }; Positions = new ObservableCollection <Position>(); Taxlots = new ObservableCollection <Taxlot>(); SelectedTradeType = TradeTypeStrings[0]; SelectedTermType = TradeTermStrings[0]; SelectedDurationType = TradeDurationStrings[0]; ChartSubtitle = "All Positions"; PreviewButtonText = "Preview Order"; ShowLimitButtonText = "Show Limit Orders"; LimitOrdersHidden = true; LimitBoxActive = false; OrderTermsOK = false; LimitPrice = 0; TotalValue = 0; TotalCostBasis = 0; TotalGainLoss = 0; AlertBoxMessage = ""; LimitOrderIsSelected = false; _canLoad = true; _canSave = true; _hiddenPositions = new List <Position>(); _chartService = SimpleIoc.Default.GetInstance <IChartService>(); _stockDataService = SimpleIoc.Default.GetInstance <IStockDataService>(); _portfolioDatabaseService = SimpleIoc.Default.GetInstance <IPortfolioDatabaseService>(); _portfolioManagementService = SimpleIoc.Default.GetInstance <IPortfolioManagementService>(); //Notify other classes that startup is complete. Messenger.Default.Send <StartupCompleteMessage>(new StartupCompleteMessage(true)); }
public PortfolioManagementService(IStockDataService stockDataService, IPortfolioDatabaseService portfolioDatabaseService) { _stockDataService = stockDataService; _portfolioDatabaseService = portfolioDatabaseService; //Load known security info from SQL DB _securityDatabaseList = _stockDataService.LoadSecurityDatabase(); //Download limit orders from SQL DB GetLimitOrderList(); //Create the core List<T>'s of taxlots, positions, and securities BuildPortfolioSecurities(); _timer = new DispatcherTimer(); _timer.Tick += _timer_Tick; _timer.Interval = new TimeSpan(0, 0, 10); }