public static Optimizely NewDefaultInstance(string sdkKey, string fallback) { var logger = OptimizelyLogger ?? new DefaultLogger(); var errorHandler = new DefaultErrorHandler(); var eventDispatcher = new DefaultEventDispatcher(logger); var builder = new HttpProjectConfigManager.Builder(); var notificationCenter = new NotificationCenter(); var configManager = builder .WithSdkKey(sdkKey) .WithDatafile(fallback) .WithLogger(logger) .WithErrorHandler(errorHandler) .WithNotificationCenter(notificationCenter) .Build(true); EventProcessor eventProcessor = null; #if !NETSTANDARD1_6 && !NET35 eventProcessor = new BatchEventProcessor.Builder() .WithLogger(logger) .WithMaxBatchSize(MaxEventBatchSize) .WithFlushInterval(MaxEventFlushInterval) .WithEventDispatcher(eventDispatcher) .WithNotificationCenter(notificationCenter) .Build(); #endif return(NewDefaultInstance(configManager, notificationCenter, eventDispatcher, errorHandler, logger, eventProcessor: eventProcessor)); }
public static Optimizely NewDefaultInstance() { var logger = OptimizelyLogger ?? new DefaultLogger(); OptimizelySDKConfigSection OptlySDKConfigSection = null; try { OptlySDKConfigSection = ConfigurationManager.GetSection(ConfigSectionName) as OptimizelySDKConfigSection; } catch (ConfigurationErrorsException ex) { logger.Log(LogLevel.ERROR, "Invalid App.Config. Unable to initialize optimizely instance" + ex.Message); return(null); } HttpProjectConfigElement httpProjectConfigElement = OptlySDKConfigSection.HttpProjectConfig; if (httpProjectConfigElement == null) { return(null); } var errorHandler = new DefaultErrorHandler(logger, false); var eventDispatcher = new DefaultEventDispatcher(logger); var builder = new HttpProjectConfigManager.Builder(); var notificationCenter = new NotificationCenter(); var configManager = builder .WithSdkKey(httpProjectConfigElement.SDKKey) .WithUrl(httpProjectConfigElement.Url) .WithFormat(httpProjectConfigElement.Format) .WithPollingInterval(TimeSpan.FromMilliseconds(httpProjectConfigElement.PollingInterval)) .WithBlockingTimeoutPeriod(TimeSpan.FromMilliseconds(httpProjectConfigElement.BlockingTimeOutPeriod)) #if !NET40 && !NET35 .WithAccessToken(httpProjectConfigElement.DatafileAccessToken) #endif .WithLogger(logger) .WithErrorHandler(errorHandler) .WithNotificationCenter(notificationCenter) .Build(true); EventProcessor eventProcessor = null; var batchEventProcessorElement = OptlySDKConfigSection.BatchEventProcessor; if (batchEventProcessorElement == null) { return(null); } eventProcessor = new BatchEventProcessor.Builder() .WithMaxBatchSize(batchEventProcessorElement.BatchSize) .WithFlushInterval(TimeSpan.FromMilliseconds(batchEventProcessorElement.FlushInterval)) .WithTimeoutInterval(TimeSpan.FromMilliseconds(batchEventProcessorElement.TimeoutInterval)) .WithLogger(logger) .WithEventDispatcher(eventDispatcher) .WithNotificationCenter(notificationCenter) .Build(); return(NewDefaultInstance(configManager, notificationCenter, eventDispatcher, errorHandler, logger, eventProcessor: eventProcessor)); }