コード例 #1
0
        public void SetUp()
        {
            _internalRegisteredSipRepository = A.Fake <IRegisteredSipRepository>();
            _cache = new CachingService();

            // Clear cache
            _cache.FullReload();

            _sut = new CachedRegisteredSipRepository(_cache, _internalRegisteredSipRepository);
        }
コード例 #2
0
        public override int SaveChanges()
        {
            // Set changed/updated info
            var entities = ChangeTracker.Entries().Where(x => x.Entity is EntityBase && (x.State == EntityState.Added || x.State == EntityState.Modified)).ToList();

            foreach (var entity in entities)
            {
                var timeStamp = DateTime.UtcNow;

                if (entity.State == EntityState.Added)
                {
                    ((EntityBase)entity.Entity).Id        = Guid.NewGuid();
                    ((EntityBase)entity.Entity).CreatedOn = timeStamp;
                    ((EntityBase)entity.Entity).CreatedBy = CurrentUserName();
                }

                ((EntityBase)entity.Entity).UpdatedOn = timeStamp;
                ((EntityBase)entity.Entity).UpdatedBy = CurrentUserName();
            }

            // Should invalidate cache?
            bool shouldInvalidateCache = ChangeTracker.Entries().Any(
                x => x.Entity is EntityBase && (x.State == EntityState.Added || x.State == EntityState.Modified || x.State == EntityState.Deleted)
                );

            var saveChangesResult = base.SaveChanges();

            shouldInvalidateCache = shouldInvalidateCache && saveChangesResult > 0;

            if (shouldInvalidateCache)
            {
                log.Debug("Changes in data saved to database. Trigger full cache update.");
                // TODO: ZZZ This is too wide. Since it is affecting both saving of data and changing registered sips and everything else
                _cache.FullReload();
            }

            return(saveChangesResult);
        }
コード例 #3
0
ファイル: CCMDbContext.cs プロジェクト: yehuangcn/ccm
        public override int SaveChanges()
        {
            // Set changed/updated info
            var username = Thread.CurrentPrincipal != null && Thread.CurrentPrincipal.Identity != null ? Thread.CurrentPrincipal.Identity.Name : "okänt";
            var entities = ChangeTracker.Entries().Where(x => x.Entity is EntityBase && (x.State == EntityState.Added || x.State == EntityState.Modified)).ToList();

            foreach (var entity in entities)
            {
                var timeStamp = DateTime.UtcNow;

                if (entity.State == EntityState.Added)
                {
                    ((EntityBase)entity.Entity).CreatedOn = timeStamp;
                    ((EntityBase)entity.Entity).CreatedBy = username;
                }

                ((EntityBase)entity.Entity).UpdatedOn = timeStamp;
                ((EntityBase)entity.Entity).UpdatedBy = username;
            }

            // Should invalidate cache?
            bool shouldInvalidateCache = ChangeTracker.Entries().Any(
                x => x.Entity is EntityBase && (x.State == EntityState.Added || x.State == EntityState.Modified || x.State == EntityState.Deleted)
                );

            var saveChangesResult = base.SaveChanges();

            shouldInvalidateCache = shouldInvalidateCache && saveChangesResult > 0;

            if (shouldInvalidateCache)
            {
                log.Debug("Föränding i konfigureringsdata sparad till databasen. Triggar full uppdatering av lokal cache");
                _cache.FullReload();
            }

            return(saveChangesResult);
        }