public static void SeedData(this ModelBuilder modelBuilder) { var companyA = new Counterparty(1, "Company A"); var companyB = new Counterparty(2, "Company B"); modelBuilder.Entity <Counterparty>().HasData(companyA, companyB); //var tradeId1 = Trade.Create(1, 1, "Sugar", 100, 400.50m, new DateTime(2018, 1, 31), Direction.Buy); var tradeId1 = new Trade.Builder() { Date = new DateTime(2018, 1, 31), CounterpartyId = 1, Product = "Sugar", Quantity = 100, Price = 400.50m, Direction = Direction.Buy }.Build(); tradeId1.SetId(1); //var tradeId2 = Trade.Create(2, 2, "Sugar", 100, 450.10m, new DateTime(2018, 3, 31), Direction.Sell); var tradeId2 = new Trade.Builder() { Date = new DateTime(2018, 3, 31), CounterpartyId = 2, Product = "Sugar", Quantity = 100, Price = 450.10m, Direction = Direction.Sell }.Build(); tradeId2.SetId(2); modelBuilder.Entity <Trade>().HasData(tradeId1, tradeId2); }
public async Task Insert_ShouldInsert_Async() { var trade = new Trade.Builder() { Date = DateTime.Now, CounterpartyId = 1, Product = "Sugar", Quantity = 100, Price = 100, Direction = Direction.Buy }.Build(); this.repository.Insert(trade); await this.context.SaveChangesAsync(); var inserted = await this.repository.FindAsync(trade.Id.Value); Assert.AreEqual(trade.Id, inserted.Id); Assert.AreEqual(trade.CounterpartyId, inserted.CounterpartyId); Assert.AreEqual(trade.Product, inserted.Product); Assert.AreEqual(trade.Quantity, inserted.Quantity); Assert.AreEqual(trade.Price, inserted.Price); Assert.AreEqual(trade.Date, inserted.Date); Assert.AreEqual(trade.Direction, inserted.Direction); Assert.IsNotNull(trade.Counterparty); Assert.AreEqual("Company A", trade.Counterparty.Name); Assert.AreEqual(1, trade.Counterparty.Id); }
public async Task Update_ShouldUpdate_Async() { var trade = new Trade.Builder { Id = 1, Date = DateTime.Now, CounterpartyId = 2, Product = "Spice", Quantity = 100, Price = 100, Direction = Direction.Sell }.Build(); this.repository.Update(trade); await this.context.SaveChangesAsync(); var updated = await this.repository.FindAsync(trade.Id.Value); Assert.AreEqual(trade.Id, updated.Id); Assert.AreEqual(trade.CounterpartyId, updated.CounterpartyId); Assert.AreEqual(trade.Product, updated.Product); Assert.AreEqual(trade.Quantity, updated.Quantity); Assert.AreEqual(trade.Price, updated.Price); Assert.AreEqual(trade.Date, updated.Date); Assert.AreEqual(trade.Direction, updated.Direction); }
public void Builder_WhenNew() { var trade = new Trade.Builder() { }.Build(); Assert.IsNotNull(trade); }
public async Task <int> CreateTradeAsync(CreateTrade request) { var trade = new Trade.Builder { Date = request.Date, CounterpartyId = request.CounterpartyId, Product = request.Product, Quantity = request.Quantity, Price = request.Price, Direction = (Direction)request.Direction }.Build(); this.UnitOfWork.TradeRepository.Insert(trade); await this.UnitOfWork.SaveChangesAsync(); return(trade.Id.Value); }
public async Task <bool> UpdateTradeAsync(UpdateTrade request) { var trade = new Trade.Builder { Id = request.TradeId, Date = request.Date, CounterpartyId = request.CounterpartyId, Product = request.Product, Quantity = request.Quantity, Price = request.Price, Direction = (Direction)request.Direction }.Build(); this.UnitOfWork.TradeRepository.Update(trade); var result = await this.UnitOfWork.SaveChangesAsync(); return(result == 1); }