public void NonTransactionalRootStateless()
        {
            ISessionManager sessionManager = container.Resolve <ISessionManager>();

            ITransaction transaction;

            using (IStatelessSession session = sessionManager.OpenStatelessSession())
            {
                transaction = session.Transaction;

                Assert.IsFalse(transaction.IsActive);

                FirstDao  first  = container.Resolve <FirstDao>("myfirstdao");
                SecondDao second = container.Resolve <SecondDao>("myseconddao");

                // This call is transactional
                Blog blog = first.CreateStateless();

                // TODO: Assert transaction was committed
                // Assert.IsTrue(session.Transaction.WasCommitted);

                try
                {
                    second.CreateWithExceptionStateless2(blog);
                }
                catch (Exception)
                {
                    // Expected
                }

                // TODO: Assert transaction was rolledback
                // Assert.IsTrue(session.Transaction.WasRolledBack);

                RootService rootService = container.Resolve <RootService>();

                Array blogs = rootService.FindAllStateless(typeof(Blog));
                Assert.AreEqual(1, blogs.Length);
                Array blogitems = rootService.FindAllStateless(typeof(BlogItem));
                Assert.IsEmpty(blogitems);
            }
        }
        public void NonTransactionalRoot()
        {
            ISessionManager sessionManager = (ISessionManager)
                                             container[typeof(ISessionManager)];

            using (ISession session = sessionManager.OpenSession())
            {
                Assert.IsNull(session.Transaction);

                FirstDao  first  = (FirstDao)container["myfirstdao"];
                SecondDao second = (SecondDao)container["myseconddao"];

                // This call is transactional
                Blog blog = first.Create();

                Assert.IsTrue(session.Transaction.WasCommitted);

                try
                {
                    second.CreateWithException2(blog);
                }
                catch (Exception)
                {
                    // Expected
                }

                Assert.IsTrue(session.Transaction.WasRolledBack);

                RootService rootService = (RootService)container["root"];

                Array blogs = rootService.FindAll(typeof(Blog));
                Assert.AreEqual(1, blogs.Length);
                Array blogitems = rootService.FindAll(typeof(BlogItem));
                Assert.IsNull(blogitems);
            }
        }
		public RootService(FirstDao firstDao, SecondDao secondDao, ISessionManager sessManager) : base(sessManager)
		{
			this.firstDao = firstDao;
			this.secondDao = secondDao;
		}
 public RootService(FirstDao firstDao, SecondDao secondDao, ISessionManager sessManager) : base(sessManager)
 {
     this.firstDao  = firstDao;
     this.secondDao = secondDao;
 }