Exemplo n.º 1
0
        public static Moggles ConfigureAndStartClient(IConfiguration configuration, IMogglesLoggingService loggingService = null)
        {
            lock (Padlock)
            {
                var instance = (Moggles)MogglesContainer.Resolve <Moggles>();
                if (instance == null)
                {
                    instance = new Moggles(configuration, loggingService);
                    MogglesContainer.Register(instance);
                }

                return(instance);
            }
        }
Exemplo n.º 2
0
        private bool IsFeatureToggleEnabled()
        {
            var featureToggleService = (MogglesToggleService)MogglesContainer.Resolve <MogglesToggleService>();
            var configurationManager = (IMogglesConfigurationManager)MogglesContainer.Resolve <IMogglesConfigurationManager>();

            if (configurationManager.IsApplicationInTestingMode())
            {
                return(configurationManager.GetFeatureToggleValueFromConfig(_name));
            }

            var featureToggleValue = featureToggleService.GetFeatureTogglesFromCache()
                                     ?.FirstOrDefault(x => x.FeatureToggleName == _name);

            return(featureToggleValue?.IsEnabled ?? false);
        }
        public Task Consume(ConsumeContext <RefreshTogglesCache> context)
        {
            _featureToggleService        = (MogglesToggleService)MogglesContainer.Resolve <MogglesToggleService>();
            _featureToggleLoggingService = (IMogglesLoggingService)MogglesContainer.Resolve <IMogglesLoggingService>();
            _mogglesConfigurationManager = (IMogglesConfigurationManager)MogglesContainer.Resolve <IMogglesConfigurationManager>();

            var msg = context.Message;

            var currentApplication = _mogglesConfigurationManager.GetApplicationName();
            var currentEnvironment = _mogglesConfigurationManager.GetEnvironment();

            if (msg.ApplicationName.ToLowerInvariant() == currentApplication.ToLowerInvariant() &&
                msg.Environment.ToLowerInvariant() == currentEnvironment.ToLowerInvariant())
            {
                _featureToggleLoggingService.TrackEvent($"Handled cache refresh event for {msg.ApplicationName}/{msg.Environment}", currentApplication, currentEnvironment);
                _featureToggleService.CacheFeatureToggles();
            }

            return(Task.FromResult(0));
        }