示例#1
0
 /// <inheritdoc />
 public IEnumerable <T> LoadFromStream <T>(Expression <Func <T, bool> > predicate) where T : class, IIntegrationEvent
 {
     return(_entityFactoryService.Create <T>()
            .Query()
            .Where(predicate)
            .OrderBy(x => x.Timestamp));
 }
        public IActionResult Get(int id)
        {
            var greeting = _efs.Create <Greeting>().Get(id);

            return(greeting is null
        ? (IActionResult)NotFound()
        : Ok(greeting));
        }
示例#3
0
        /// <inheritdoc cref="IUnitOfWork"/>
        public void MarkDirty <TEntity>(TEntity entity) where TEntity : class
        {
            var repository = _factoryService.Create <TEntity>();

            ((ISessionProvider)repository).GetCurrentSession().Evict(entity);
            repository.Add(entity);
        }
示例#4
0
        public void TestCommit()
        {
            //arrange
            const int testValue = 5;
            var       testItem  = new TestEntity();

            using (var session = _factory.GetScopedSession())
                using (var uow = _factory.Create(IsolationLevel.ReadCommitted, true, true))
                {
                    var dataRepository = _factory.Create <TestEntity>();
                    dataRepository.Add(testItem);
                    uow.Commit();
                }

            //act
            using (var session = _factory.GetScopedSession())
                using (var uow = _factory.Create(IsolationLevel.ReadCommitted, true, true))
                {
                    var dataRepository = _factory.Create <TestEntity>();
                    var modifyData     = dataRepository.Get(testItem.Id);
                    modifyData.Status = testValue;
                    uow.Save();
                    uow.Commit();
                }

            //assert
            var readedValue = 0;

            using (var session = _factory.GetScopedSession())
                using (var uow = _factory.Create(IsolationLevel.ReadCommitted, true, true))
                {
                    var dataRepository = _factory.Create <TestEntity>();
                    var readedEntity   = dataRepository.Get(testItem.Id);
                    readedValue = readedEntity.Status;
                    dataRepository.Delete(readedEntity);
                    uow.Commit();
                }

            Assert.AreEqual(readedValue, testValue);
        }