public void DbIsCreatedSuccessfully() { var options = new DbContextOptionsBuilder <QpasDbContext>() .UseSqlite("Data Source=:memory:;") .Options; using (var ctx = new QpasDbContext(options)) { ctx.Database.OpenConnection(); ctx.Database.Migrate(); Seed.DoSeed(ctx); ctx.Database.CloseConnection(); } }
/// <summary> /// Simply drops the database. /// </summary> private async void ClearDataBtn_Click(object sender, RoutedEventArgs e) { MessageDialogResult res = await this.ShowMessageAsync( "Are you sure?", "You are about to delete all the data, are you sure?", MessageDialogStyle.AffirmativeAndNegative); if (res == MessageDialogResult.Negative) { return; } MessageDialogResult res2 = await this.ShowMessageAsync( "Are you absolutely sure?", "Checking twice to be safe, are you sure you want to delete everything?", MessageDialogStyle.AffirmativeAndNegative); if (res2 == MessageDialogResult.Negative) { return; } try { var dbContext = new QpasDbContext(); dbContext.Database.ExecuteSqlRaw(@" PRAGMA writable_schema = 1; delete from sqlite_master where type in ('table', 'index', 'trigger'); PRAGMA writable_schema = 0; "); System.Windows.Application.Current.Shutdown(); } catch (Exception ex) { this.ShowMessageAsync( "Error", "Could not clear data. Error: " + ex.Message).Forget(); var logger = LogManager.GetCurrentClassLogger(); logger.Log(LogLevel.Error, ex); return; } await this.ShowMessageAsync( "Done", "Data deleted. The application will now shut down."); Application.Current.Shutdown(); }
public void SetUp() { _inst = new Instrument { ID = 1, Multiplier = 1, AssetCategory = AssetClass.Stock }; _t = new Trade { Orders = new List <Order>(), CashTransactions = new List <CashTransaction>(), FXTransactions = new List <FXTransaction>() }; _dsMock = new Mock <IDataSourcer>(); _dsMock.Setup(x => x.GetData(It.IsAny <Instrument>(), It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <QDMS.BarSize>())) .Returns <Instrument, DateTime, DateTime, QDMS.BarSize>((a, b, c, d) => Task.FromResult(GenerateData(b, c))); _contextMock = new Mock <IQpasDbContext>(); var dbContextOptions = new DbContextOptionsBuilder <QpasDbContext>() .UseInMemoryDatabase(databaseName: "qpasdb") .Options; _dbContext = new QpasDbContext(dbContextOptions); var equitySummaries = new List <EquitySummary> { new EquitySummary { Date = new DateTime(2000, 1, 1), Total = 10000 } }; _dbContext.EquitySummaries.AddRange(equitySummaries); _contextMock.SetupGet(x => x.EquitySummaries).Returns(_dbContext.EquitySummaries); var factory = new DbContextFactory(() => _contextMock.Object); var settings = new AppSettings() { OptionsCapitalUsageMultiplier = 0.1m }; _repository = new TradesRepository(factory, _dsMock.Object, settings); }
public void SetUp() { _dbContextOptions = new DbContextOptionsBuilder <QpasDbContext>() .UseInMemoryDatabase(databaseName: "qpastestdb") .Options; _externalSourceMock = new Mock <IExternalDataSource>(); _contextMock = new Mock <IQpasDbContext>(); _dbContext = new QpasDbContext(_dbContextOptions); _contextMock.Setup(x => x.PriorPositions).Returns(_dbContext.PriorPositions); _contextMock.Setup(x => x.FXRates).Returns(_dbContext.FXRates); _contextMock.Setup(x => x.Currencies).Returns(_dbContext.Currencies); _contextMock.Setup(x => x.PriorPositions).Returns(_dbContext.PriorPositions); _contextFactory = new DbContextFactory(() => _contextMock.Object); _data = new DataContainer(); _datasourcer = new DataSourcer(_contextFactory, _externalSourceMock.Object, _data, true); }
private void NextBtn_Click(object sender, RoutedEventArgs e) { string accountId = AccountIdTextBox.Text; if (String.IsNullOrEmpty(accountId)) { MessageBox.Show("Cannot use an empty account."); return; } using (var context = new QpasDbContext()) { //check if this account exists, otherwise add it Account account; if (context.Accounts.Any(x => x.AccountId == accountId)) { account = context.Accounts.First(x => x.AccountId == accountId); } else { account = new Account { AccountId = accountId }; context.Accounts.Add(account); context.SaveChanges(); } //Now that we have the account, set it everywhere foreach (EquitySummary es in context.EquitySummaries) { es.Account = account; } foreach (DividendAccrual da in context.DividendAccruals) { da.Account = account; } foreach (Order o in context.Orders) { o.Account = account; } foreach (Execution ex in context.Executions) { ex.Account = account; } foreach (FXTransaction fxt in context.FXTransactions) { fxt.Account = account; } foreach (FXPosition fxp in context.FXPositions) { fxp.Account = account; } foreach (CashTransaction ct in context.CashTransactions) { ct.Account = account; } foreach (OpenPosition op in context.OpenPositions) { op.Account = account; } foreach (PriorPosition pp in context.PriorPositions) { pp.Account = account; } context.SaveChanges(); } _appliedChanges = true; MessageBox.Show("Success!"); Close(); }