Exemplo n.º 1
0
        /// <summary>
        /// Gets an entity by the passed in Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public TEntity Get(TId id)
        {
            var fromCache = TryGetFromCache(id);

            if (fromCache.Success)
            {
                return(fromCache.Result);
            }

            var entity = PerformGet(id);

            if (entity != null)
            {
                _cache.Save(typeof(TEntity), entity);
            }

            if (entity != null)
            {
                //on initial construction we don't want to have dirty properties tracked
                // http://issues.umbraco.org/issue/U4-1946
                TracksChangesEntityBase asEntity = entity as TracksChangesEntityBase;
                if (asEntity != null)
                {
                    asEntity.ResetDirtyProperties(false);
                }
            }

            return(entity);
        }
Exemplo n.º 2
0
        public void Can_Get_Entity_From_Registry()
        {
            // Arrange
            var mockedEntity = new MockedEntity {
                Id = 20, Key = 20.ToGuid(), Alias = "getMocked", Name = "GetMocked", Value = "Getting entity by id test"
            };

            _registry.Save(typeof(MockedEntity), mockedEntity);

            // Act
            var entity = _registry.GetById(mockedEntity.GetType(), mockedEntity.Key);

            // Assert
            Assert.That(entity, Is.Not.Null);
            Assert.That(entity.Id, Is.EqualTo(mockedEntity.Id));
            Assert.That(entity.GetType(), Is.EqualTo(mockedEntity.GetType()));
        }
        public void Tracked_Keys_Removed_When_Cache_Removed()
        {
            _registry = RuntimeCacheProvider.Current;

            //Fill the registry with random entities
            var entity1 = new MockedEntity { Id = 1, Key = 1.ToGuid(), Alias = "mocked1", Name = "Mocked1", Value = Guid.NewGuid().ToString("n") };
            var entity2 = new MockedEntity { Id = 2, Key = 2.ToGuid(), Alias = "mocked2", Name = "Mocked2", Value = Guid.NewGuid().ToString("n") };
            var entity3 = new MockedEntity { Id = 3, Key = 3.ToGuid(), Alias = "mocked3", Name = "Mocked3", Value = Guid.NewGuid().ToString("n") };

            _registry.Save(typeof(MockedEntity), entity1);
            _registry.Save(typeof(MockedEntity), entity2);
            _registry.Save(typeof(MockedEntity), entity3);

            //now clear the runtime cache internally
            ((RuntimeCacheProvider)_registry).ClearDataCache();

            Assert.AreEqual(0, _registry.GetAllByType(typeof (MockedEntity)).Count());
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets an entity by the passed in Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public TEntity Get(TId id)
        {
            Guid key = id is int?ConvertIdToGuid(id) : ConvertStringIdToGuid(id.ToString());

            var rEntity = _cache.GetById(typeof(TEntity), key);

            if (rEntity != null)
            {
                return((TEntity)rEntity);
            }

            var entity = PerformGet(id);

            if (entity != null)
            {
                _cache.Save(typeof(TEntity), entity);
            }

            return(entity);
        }
Exemplo n.º 5
0
        public void Initiate_Registry()
        {
            _registry = InMemoryCacheProvider.Current;

            //Fill the registry with random entities
            var entity1 = new MockedEntity {
                Id = 1, Key = 1.ToGuid(), Alias = "mocked1", Name = "Mocked1", Value = Guid.NewGuid().ToString("n")
            };
            var entity2 = new MockedEntity {
                Id = 2, Key = 2.ToGuid(), Alias = "mocked2", Name = "Mocked2", Value = Guid.NewGuid().ToString("n")
            };
            var entity3 = new MockedEntity {
                Id = 3, Key = 3.ToGuid(), Alias = "mocked3", Name = "Mocked3", Value = Guid.NewGuid().ToString("n")
            };
            var entity4 = new MockedEntity {
                Id = 4, Key = 4.ToGuid(), Alias = "mocked4", Name = "Mocked4", Value = Guid.NewGuid().ToString("n")
            };
            var entity5 = new MockedEntity {
                Id = 5, Key = 5.ToGuid(), Alias = "mocked5", Name = "Mocked5", Value = Guid.NewGuid().ToString("n")
            };
            var entity6 = new MockedEntity {
                Id = 6, Key = 6.ToGuid(), Alias = "mocked6", Name = "Mocked6", Value = Guid.NewGuid().ToString("n")
            };

            _registry.Save(typeof(MockedEntity), entity1);
            _registry.Save(typeof(MockedEntity), entity2);
            _registry.Save(typeof(MockedEntity), entity3);
            _registry.Save(typeof(MockedEntity), entity4);
            _registry.Save(typeof(MockedEntity), entity5);
            _registry.Save(typeof(MockedEntity), entity6);
        }
        public void Tracked_Keys_Removed_When_Cache_Removed()
        {
            _registry = RuntimeCacheProvider.Current;

            //Fill the registry with random entities
            var entity1 = new MockedEntity {
                Id = 1, Key = 1.ToGuid(), Alias = "mocked1", Name = "Mocked1", Value = Guid.NewGuid().ToString("n")
            };
            var entity2 = new MockedEntity {
                Id = 2, Key = 2.ToGuid(), Alias = "mocked2", Name = "Mocked2", Value = Guid.NewGuid().ToString("n")
            };
            var entity3 = new MockedEntity {
                Id = 3, Key = 3.ToGuid(), Alias = "mocked3", Name = "Mocked3", Value = Guid.NewGuid().ToString("n")
            };

            _registry.Save(typeof(MockedEntity), entity1);
            _registry.Save(typeof(MockedEntity), entity2);
            _registry.Save(typeof(MockedEntity), entity3);

            //now clear the runtime cache internally
            ((RuntimeCacheProvider)_registry).ClearDataCache();

            Assert.AreEqual(0, _registry.GetAllByType(typeof(MockedEntity)).Count());
        }
Exemplo n.º 7
0
        public void Can_Clear_By_Type()
        {
            var customObj1 = new CustomMockedEntity {
                Id = 5, Key = 5.ToGuid(), Alias = "mocked5", Name = "Mocked5", Value = Guid.NewGuid().ToString("n")
            };
            var customObj2 = new CustomMockedEntity {
                Id = 6, Key = 6.ToGuid(), Alias = "mocked6", Name = "Mocked6", Value = Guid.NewGuid().ToString("n")
            };

            _registry.Save(typeof(CustomMockedEntity), customObj1);
            _registry.Save(typeof(CustomMockedEntity), customObj2);

            Assert.AreEqual(2, _registry.GetAllByType(typeof(CustomMockedEntity)).Count());

            _registry.Clear(typeof(CustomMockedEntity));

            Assert.AreEqual(0, _registry.GetAllByType(typeof(CustomMockedEntity)).Count());
        }
        public void Initiate_Registry()
        {
            _registry = RuntimeCacheProvider.Current;

            //Fill the registry with random entities
            var entity1 = new MockedEntity { Id = 1, Key = 1.ToGuid(), Alias = "mocked1", Name = "Mocked1", Value = Guid.NewGuid().ToString("n") };
            var entity2 = new MockedEntity { Id = 2, Key = 2.ToGuid(), Alias = "mocked2", Name = "Mocked2", Value = Guid.NewGuid().ToString("n") };
            var entity3 = new MockedEntity { Id = 3, Key = 3.ToGuid(), Alias = "mocked3", Name = "Mocked3", Value = Guid.NewGuid().ToString("n") };
            var entity4 = new MockedEntity { Id = 4, Key = 4.ToGuid(), Alias = "mocked4", Name = "Mocked4", Value = Guid.NewGuid().ToString("n") };
            var entity5 = new MockedEntity { Id = 5, Key = 5.ToGuid(), Alias = "mocked5", Name = "Mocked5", Value = Guid.NewGuid().ToString("n") };
            var entity6 = new MockedEntity { Id = 6, Key = 6.ToGuid(), Alias = "mocked6", Name = "Mocked6", Value = Guid.NewGuid().ToString("n") };

            _registry.Save(typeof(MockedEntity), entity1);
            _registry.Save(typeof(MockedEntity), entity2);
            _registry.Save(typeof(MockedEntity), entity3);
            _registry.Save(typeof(MockedEntity), entity4);
            _registry.Save(typeof(MockedEntity), entity5);
            _registry.Save(typeof(MockedEntity), entity6);
        }