public void Should_Use_Two_Transactions_In_One_TransactionScope()
        {
            string test_name = Guid.NewGuid().ToString();

            using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider))
            {
                ICustomerRepository customerRepository = new CustomerRepository(unitOfWork);
                var customer = customerRepository.AsQueryable(f => f.Name == test_name).FirstOrDefault();
                Assert.IsNull(customer);
            }

            using (new TransactionScope(TransactionScopeOption.Required))
            {
                using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider))
                {
                    unitOfWork.BeginTransaction();

                    ICustomerRepository customerRepository = new CustomerRepository(unitOfWork);
                    customerRepository.Save(
                        new Customer
                        {
                            Code = "test_code",
                            Name = test_name,
                            Type = CustomerType.LoyalCustomers,
                            CreatedOn = DateTime.Now,
                            DeletedOn = null
                        });

                    unitOfWork.Commit();
                }

                using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider))
                {
                    unitOfWork.BeginTransaction();

                    ICustomerRepository customerRepository = new CustomerRepository(unitOfWork);
                    var customer = customerRepository.AsQueryable(f => f.Name == test_name).FirstOrDefault();
                    Assert.IsNotNull(customer);

                    unitOfWork.Commit();
                }
            }
        }
        private void CreateCustomer(string name)
        {
            using (IUnitOfWork unitOfWork = new UnitOfWork(Singleton.SessionFactoryProvider))
            {
                unitOfWork.BeginTransaction();

                ICustomerRepository customerRepository = new CustomerRepository(unitOfWork);

                customerRepository.Save(
                    new Customer
                    {
                        Code = "test_code",
                        Name = name,
                        Type = CustomerType.LoyalCustomers,
                        CreatedOn = DateTime.Now,
                        DeletedOn = null
                    });

                unitOfWork.Commit();
            }
        }