Exemplo n.º 1
0
        public void TestTransaction2()
        {
            TestMember m = new TestMember()
            {
                Hehe = DateTime.Now.AddDays(12)
            };

            _ps.Save(m);

            IPersistenceService ps2         = new EFPersistenceService();
            ITransactionService ts2         = (ITransactionService)ps2;
            TestMember          mConcurrent = ps2.GetById <TestMember, int>(m.ID);

            Assert.AreNotSame(m, mConcurrent);
            var mts = ts2.ExecuteInTransaction(() =>
            {
                mConcurrent.Hehe = DateTime.Today.AddDays(20);
                ps2.Update(mConcurrent);
                return(true);
            });

            Assert.AreNotSame(m, mConcurrent);
            try
            {
                m.Hehe = DateTime.Now.AddMinutes(5);
                _ps.Update(m);
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.AreEqual(typeof(DbUpdateConcurrencyException), e.GetType());
            }
        }
        public AnwendungskernFacade()
        {
            IPersistenceService persistenceService = new EFPersistenceService();
            ITransactionService transactionService = (ITransactionService)persistenceService;

            mitarbeiterServices = new MitarbeiterkomponenteFacade(persistenceService, transactionService);
            kundenServices      = new KundenkomponenteFacade(persistenceService, transactionService, mitarbeiterServices as IMitarbeiterServicesFuerKunden);
            kursServices        = new KurskomponenteFacade(persistenceService, transactionService, kundenServices as IKundenServicesFuerKurse, mitarbeiterServices as IMitarbeiterServicesFuerKurse);
            rechnungsServices   = new RechnungskomponenteFacade(persistenceService, transactionService, kursServices as IKursServicesFuerRechnungen);
        }