Exemplo n.º 1
0
        public async Task Handle(OrderSubmittedEvent message, IMessageHandlerContext context)
        {
            _logger.LogInformation("Handle OrderSubmittedEvent");

            double amount = 0;

            var query = from price in _db.Prices
                        where message.Products.Contains(price.ProductId)
                        select price;

            foreach (var price in query)
            {
                var op = new OrderItemPrice
                {
                    OrderId   = message.OrderId,
                    ItemPrice = price.ItemPrice,
                    ProductId = price.ProductId
                };

                amount += price.ItemPrice;

                await _db.OrderItemPrices.AddAsync(op);
            }

            await _db.SaveChangesAsync();

            await context.SendLocal(new InitiatePaymentProcessCommand
            {
                CustomerId = message.CustomerId,
                OrderId    = message.OrderId,
                Amount     = amount
            });
        }
        public async Task Handle(OrderSubmittedEvent message, IMessageHandlerContext context)
        {
            Log.Info("Handle OrderSubmittedEvent");

            double amount = 0;

            using (var db = new FinanceContext())
            {
                var query = from price in db.Prices
                            where message.Products.Contains(price.ProductId)
                            select price;

                foreach (var price in query)
                {
                    var op = new OrderItemPrice()
                    {
                        OrderId   = message.OrderId,
                        ItemPrice = price.ItemPrice,
                        ProductId = price.ProductId
                    };

                    amount += price.ItemPrice;

                    db.OrderItemPrices.Add(op);
                }

                await db.SaveChangesAsync();
            }

            await context.SendLocal(new InitiatePaymentProcessCommand()
            {
                CustomerId = message.CustomerId,
                OrderId    = message.OrderId,
                Amount     = amount
            });
        }