public CorporateActionsViewModel(string label, ViewParameter parameter, CreateMulitpleTransactionsViewModel createTransactionsViewModel)
            : base(label, parameter)
        {
            Options.AllowStockSelection = false;
            Options.DateSelection       = DateSelectionType.None;

            _Heading = label;
            _CreateTransactionsViewModel = createTransactionsViewModel;

            CorporateActions = new ObservableCollection <CorporateActionViewModel>();

            ApplyCorporateActionCommand = new RelayCommand <CorporateActionViewModel>(ApplyCorporateAction);
        }
Beispiel #2
0
        public MainWindowViewModel()
        {
            _Modules = new List <Module>();

            FinancialYears = new ObservableCollection <DescribedObject <int> >();
            OwnedStocks    = new ObservableCollection <DescribedObject <StockViewItem> >();

#if DEBUG
            // var url = "https://docker.local:8443";
            // var url = "http://localhost";
            var url = "https://portfolio.boothfamily.id.au";
#else
            var url = "https://portfolio.boothfamily.id.au";
#endif
            _RestClient = new RestClient(url);

            ViewParameter = new ViewParameter
            {
                Stock         = _AllCompanies,
                FinancialYear = Date.Today.FinancialYear(),
                RestClient    = _RestClient
            };

            EditTransactionWindow = new EditTransactionViewModel(_RestClient);
            EditTransactionWindow.TransactionChanged += HandleTransactionChanged;
            CreateTransactionsWindow = new CreateMulitpleTransactionsViewModel(_RestClient);

            LogonWindow           = new LogonViewModel(_RestClient);
            LogonWindow.LoggedOn += HandleLoggedOn;

            _Modules.Clear();
            var homeModule = new Module("Home", "HomeIcon");
            _Modules.Add(homeModule);
            homeModule.Pages.Add(new PortfolioSummaryViewModel("Summary", ViewParameter));

            var transactionsModule = new Module("Transactions", "SettingsIcon")
            {
                PageSelectionAreaVisible = Visibility.Visible,
                PageParameterAreaVisible = Visibility.Visible
            };
            _Modules.Add(transactionsModule);
            transactionsModule.Pages.Add(new TransactionsViewModel("Transactions", ViewParameter, EditTransactionWindow));
            transactionsModule.Pages.Add(new CorporateActionsViewModel("CorporateActions", ViewParameter, CreateTransactionsWindow));

            var reportsModule = new Module("Reports", "ReportsIcon")
            {
                PageSelectionAreaVisible = Visibility.Visible,
                PageParameterAreaVisible = Visibility.Visible
            };
            _Modules.Add(reportsModule);
            reportsModule.Pages.Add(new UnrealisedGainsViewModel("Unrealised Gains", ViewParameter));
            reportsModule.Pages.Add(new TransactionReportViewModel("Transactions", ViewParameter));
            reportsModule.Pages.Add(new CashAccountViewModel("Cash Summary", ViewParameter));
            reportsModule.Pages.Add(new PerformanceViewModel("Performance", ViewParameter));
            reportsModule.Pages.Add(new AssetAllocationViewModel("Asset Allocation", ViewParameter));
            reportsModule.Pages.Add(new PortfolioValueViewModel("Valuation", ViewParameter));

            var taxModule = new Module("Tax", "TaxIcon")
            {
                PageSelectionAreaVisible = Visibility.Visible,
                PageParameterAreaVisible = Visibility.Visible
            };
            _Modules.Add(taxModule);
            taxModule.Pages.Add(new TaxableIncomeViewModel("Taxable Income", ViewParameter));
            taxModule.Pages.Add(new CGTViewModel("CGT", ViewParameter));
            taxModule.Pages.Add(new DetailedCGTViewModel("Detailed CGT", ViewParameter));

            var settingsModule = new Module("Settings", "SettingsIcon")
            {
                PageSelectionAreaVisible = Visibility.Visible,
                PageParameterAreaVisible = Visibility.Hidden
            };
            _Modules.Add(settingsModule);
            settingsModule.Pages.Add(new AddDividendViewModel(_RestClient));
            settingsModule.Pages.Add(new PortfolioSettingsViewModel("Portfolio", ViewParameter));
        }