public void SetUp() { _internalRegisteredSipRepository = A.Fake <IRegisteredSipRepository>(); _cache = new CachingService(); // Clear cache _cache.FullReload(); _sut = new CachedRegisteredSipRepository(_cache, _internalRegisteredSipRepository); }
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); }
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); }