예제 #1
0
        public void MakeOrder(string itemName, int userId)
        {
            using (var tran = transactionFactory.GetTransaction())
            {
                var order = new Order(itemName, userId);
                ordersRepository.Add(order);

                if (ShouldThrowAfterOrderAdd)
                {
                    throw new Exception("simulated error after adding order");
                }

                var user = usersRepository.Find(userId);

                user.IncreaseOrdersCount();

                usersRepository.Update(user);

                if (ShouldThrowAfterUserUpdate)
                {
                    throw new Exception("simulated error after updating user counter");
                }

                tran.Commit();
            }
        }
예제 #2
0
파일: Service.cs 프로젝트: TheXDS/Triton
 /// <summary>
 /// Obtiene una transacción que permite leer y escribir información
 /// en la base de datos.
 /// </summary>
 /// <returns>
 /// Una transacción que permite leer y escribir información en la
 /// base de datos.
 /// </returns>
 public ICrudReadWriteTransaction GetTransaction() => _factory.GetTransaction(Configuration);