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); } }