示例#1
0
        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));
        }
示例#2
0
        public MainViewModel(IPortfolioManagementService portfolioService)
        {
            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()
            };
            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;

            _portfolioManagementService = portfolioService;
            Messenger.Default.Register <PortfolioMessage>(this, RefreshCollection);
            Messenger.Default.Register <TradeMessage>(this, SetAlertMessage);

            GetPositions();
            GetTaxlots();
            GetLimitOrders();
            ExecuteShowAllSecurities();
            GetValueTotals();
            PositionCollectionView = new ListCollectionView(Positions);
            PositionCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Ticker"));
            TaxlotsCollectionView = new ListCollectionView(Taxlots);
            TaxlotsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Ticker"));

            //_portfolioManagementService.StartUpdates(); //TURNED OFF FOR TESTING
        }