public FlagCacheManager(IUserFlagCache inMemoryCache, IUserFlagCache deviceCache, IFlagListenerUpdater flagListenerUpdater, User user) { this.inMemoryCache = inMemoryCache; this.deviceCache = deviceCache; this.flagListenerUpdater = flagListenerUpdater; var flagsFromDevice = deviceCache.RetrieveFlags(user); inMemoryCache.CacheFlagsForUser(flagsFromDevice, user); }
internal static IFlagCacheManager CreateFlagCacheManager(Configuration configuration, ISimplePersistance persister, IFlagListenerUpdater updater, User user) { if (configuration.FlagCacheManager != null) { return(configuration.FlagCacheManager); } else { var inMemoryCache = new UserFlagInMemoryCache(); var deviceCache = new UserFlagDeviceCache(persister); return(new FlagCacheManager(inMemoryCache, deviceCache, updater, user)); } }