Ejemplo n.º 1
0
        public void CreateOrder(Guid customerId, List <OrderedProduct> productsAndAmounts)
        {
            var createOrderTransactionCommands = new List <ICommand>();

            createOrderTransactionCommands.Add(
                new CreateOrderCommand
            {
                CustomerId = customerId,
                Products   = productsAndAmounts
            });

            createOrderTransactionCommands.AddRange(
                productsAndAmounts.Select(t => new UpdateProductQuantityCommand
            {
                Product  = t.Product,
                Operator = CommandOperator.Add,
                Value    = -t.Quantity
            }));

            var createOrderTransaction = _transactionsService.InitTransaction(createOrderTransactionCommands);

            try
            {
                _transactionsService.CommitTransaction(createOrderTransaction);

                //_transactionsService.RollBackTransaction(createOrderTransaction);
            }
            catch
            {
                _transactionsService.RollBackTransaction(createOrderTransaction);
            }
        }