Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public void Builder_WhenNew()
        {
            var trade = new Trade.Builder()
            {
            }.Build();

            Assert.IsNotNull(trade);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }