public void FixtureSetup() { var memberName = "DefaultMember"; var builder = new ContainerBuilder(); _logger = new ConsoleLogger(LogLevel.Debug); builder.RegisterInstance(_logger).As <ILogger>(); _logger.Log("Registering Dependencies..."); builder.RegisterType <DemoHelper>().As <IDemoHelper>().SingleInstance(); builder.RegisterType <JsonNetSerializer>().As <ISerializer>().SingleInstance(); var remoteCacheProvider = Substitute.For <IRemoteCacheProvider>(); var subscriptionManager = Substitute.For <ISubscriptionManager>(); builder.RegisterInstance(remoteCacheProvider).As <IRemoteCacheProvider>().SingleInstance(); builder.RegisterInstance(subscriptionManager).As <ISubscriptionManager>().SingleInstance(); var localCacheProvider = Substitute.For <ILocalCacheProvider>(); builder.RegisterInstance(localCacheProvider).As <ILocalCacheProvider>().SingleInstance(); builder.Register( c => new GreatEagle(memberName, c.Resolve <ISubscriptionManager>(), c.Resolve <ISerializer>(), c.Resolve <ILocalCacheProvider>(), c.Resolve <IRemoteCacheProvider>(), c.Resolve <ILogger>())).As <ICacheObserver>().SingleInstance(); _container = builder.Build(); _observer = _container.Resolve <ICacheObserver>(); }
public void FixtureSetup() { _container = new ServiceContainer(); _container.SetDefaultLifetime <PerContainerLifetime>(); _container.Register <ILogger>(factory => new ConsoleLogger(LogLevel.Debug)); _logger = _container.GetInstance <ILogger>(); _logger.Log("Registering Dependencies..."); _container.Register <IDemoHelper, DemoHelper>(); _container.Register <ISerializer, JsonNetSerializer>(); var remoteCacheProvider = Substitute.For <IRemoteCacheProvider>(); var subscriptionManager = Substitute.For <ISubscriptionManager>(); _container.Register <IMessagePublisher>(factory => subscriptionManager); _container.Register <IMessageSubscriber>(factory => subscriptionManager); var localCacheProvider = Substitute.For <ILocalCacheProvider>(); _container.Register(factory => localCacheProvider); _container.Register <ICacheObserver>(factory => new GreatEagle(Guid.NewGuid().ToString(), factory.GetInstance <IMessagePublisher>(), factory.GetInstance <IMessageSubscriber>(), factory.GetInstance <ISerializer>(), localCacheProvider, remoteCacheProvider, factory.GetInstance <ILogger>()) , TestConstants.CacheObserverName); _observer = _container.GetInstance <ICacheObserver>(TestConstants.CacheObserverName); //container.Register<ILocalCacheProviderOptions>(factory => new LocalCacheProviderOptions(factory.GetInstance<ILogger>(), factory.GetInstance<ICacheObserver>())); //container.Register<ICacheProvider, LittleThunder>(LocalCacheProviderName); }
public YakariPack(ILocalCacheProviderOptions localCacheProviderOptions, string tribeName, string memberName, string redisConnectionString, LogLevel loglevel) { _logger = new ConsoleLogger(loglevel); // Default Serializer _serializer = new JsonNetSerializer(); //Redis Remote Cache Provider for Yakari _remoteCacheProvider = new RedisCacheProvider(redisConnectionString, _serializer, _logger); //Redis Subscription Manager for tribe communication. _subscriptionManager = new RedisSubscriptionManager(redisConnectionString, tribeName, _logger); // Little Thunder the Local Cache Provider _localCacheProvider = new LittleThunder(localCacheProviderOptions, _logger); // The Great Eagle _observer = new GreatEagle(memberName, _subscriptionManager, _serializer, _localCacheProvider, _remoteCacheProvider, _logger); // Great eagle start observing and loads every previous remote cache items in seperate thread }
public CacheSettings WithObserver <T>() where T : ICacheObserver, new() { Observer = new T(); return(this); }
public static void RegisterObserver <T>() where T : ICacheObserver, new() => Observer = new T();