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);
        }
Beispiel #2
0
 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));
     }
 }