public StrategiesPageViewModel(IDBContext context, IDialogCoordinator dialogService, MainViewModel parent) : base(dialogService) { Context = context; Parent = parent; StrategiesSource = new CollectionViewSource(); StrategiesSource.Source = Context.Strategies.Local; CreateCommands(); }
public TagsPageViewModel(IDBContext context, IDialogCoordinator dialogService, MainViewModel parent) : base(dialogService) { Context = context; Parent = parent; TagsSource = new CollectionViewSource(); TagsSource.Source = Context.Tags.Local; TagsSource.View.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending)); CreateCommands(); }
public CashTransactionsPageViewModel(IDBContext context, IDataSourcer datasourcer, IDialogCoordinator dialogService, MainViewModel mainVm) : base(dialogService) { Context = context; _mainVm = mainVm; CashTransactionsSource = new CollectionViewSource(); CashTransactionsSource.Source = Context.CashTransactions.Local; CashTransactionsSource.View.SortDescriptions.Add(new SortDescription("TransactionDate", ListSortDirection.Descending)); TradesRepository = mainVm.TradesRepository; CreateCommands(); }
public TradesPageViewModel(IDBContext context, IDialogCoordinator dialogService, IDataSourcer datasourcer, MainViewModel parent) : base(dialogService) { Context = context; Parent = parent; Datasourcer = datasourcer; TradesRepository = parent.TradesRepository; TradesSource = new CollectionViewSource(); TradesSource.Source = Context.Trades.Local; TradesSource.View.SortDescriptions.Add(new SortDescription("DateOpened", ListSortDirection.Descending)); Strategies = new ObservableCollection<Strategy>(); CreateCommands(); }
public PerformanceReportPageViewModel(IDBContext context, IDialogCoordinator dialogService, MainViewModel parent, IDataSourcer datasourcer) : base(dialogService) { Context = context; Parent = parent; Datasourcer = datasourcer; ReportSettings = new ReportSettings(); TradeFilterSettings = new TradeFilterSettings(Context); ToggleTagsText = "Select All"; ToggleStratsText = "Select All"; ToggleInstrumentsText = "Deselect All"; Strategies = new ObservableCollection<CheckListItem<Strategy>>(); Tags = new ObservableCollection<CheckListItem<Tag>>(); Instruments = new ObservableCollection<CheckListItem<Instrument>>(); Benchmarks = new ObservableCollection<Benchmark>(); BacktestSeries = new ObservableCollection<QDMS.Instrument>(); CreateCommands(); }
public MainWindow() { //make sure we have a database connection and stuff, otherwise show the dialog to set db settings try { DBUtils.CheckDBConnection(); } catch { App.Splash.LoadComplete(); var dbDetailsWindow = new DBPicker(); dbDetailsWindow.ShowDialog(); } //initialize logging InitializeLogging(); //Log unhandled exceptions AppDomain.CurrentDomain.UnhandledException += AppDomain_CurrentDomain_UnhandledException; //set the connection string DBUtils.SetConnectionString(); //set EF configuration, necessary for MySql to work DBUtils.SetDbConfiguration(); Context = new DBContext(); //create db if it doesn't exist Context.Database.Initialize(false); //check for any currencies, seed the db with initial values if nothing is found if (!Context.Currencies.Any()) { Seed.DoSeed(); } //check for empty account fields if(Context.EquitySummaries.Any(x => x.AccountID == null)) { App.Splash.LoadComplete(); var accountMigrationWindow = new AccountMigrationWindow(); accountMigrationWindow.ShowDialog(); } var qdmsSource = new ExternalDataSources.QDMS(); Datasourcer = new DataSourcer(Context, qdmsSource, Properties.Settings.Default.allowExternalDataSource); TradesRepository = new TradesRepository(Context, Datasourcer, Properties.Settings.Default.optionsCapitalUsageMultiplier); ViewModel = new MainViewModel(Context, Datasourcer, DialogCoordinator.Instance); //Load user scripts ScriptLoader.LoadUserScriptTypes(); ///////////////////////////////////////////////////////// InitializeComponent(); ///////////////////////////////////////////////////////// DataContext = ViewModel; //Create the load statement menus using the loaded plugins PopulateStatementMenus(); //Restore column ordering, widths, and sorting LoadDataGridLayouts(); //A hack to force the heavy stuff to load, //providing snappier navigation at the expense of longer startup time #if !DEBUG ViewModel.TradesPageViewModel.Refresh(); TradesGrid.Measure(new Size(500, 500)); ViewModel.OrdersPageViewModel.Refresh(); OrdersGrid.Measure(new Size(500, 500)); ViewModel.CashTransactionsPageViewModel.Refresh(); CashTransactionsGrid.Measure(new Size(500, 500)); #endif //hiding the tab headers Style s = new Style(); s.Setters.Add(new Setter(VisibilityProperty, Visibility.Collapsed)); MainTabCtl.ItemContainerStyle = s; //load the open positions page data ViewModel.RefreshCurrentPage(); //close the slash screen App.Splash.LoadComplete(); ShowChangelog(); }