public static void LogInfo(FlagshipConfig config, string message, string tag) { try { if (config == null || config.LogManager == null || config.LogLevel < Enums.LogLevel.INFO) { return; } config.LogManager.Info(message, tag); } catch (Exception exception) { Console.WriteLine(exception.Message); } }
public ApiManager(FlagshipConfig config, HttpClient httpClient) : base(config, httpClient) { }
/// <summary> /// Start the Flagship SDK. /// </summary> /// <param name="envId">Environment id provided by Flagship.</param> /// <param name="apiKey">Api authentication key provided by Flagship.</param> /// <param name="config">Custom flagship configuration.</param> public static void Start(string envId, string apiKey, FlagshipConfig config = null) { #if NET40 || NETSTANDARD2_0 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls; #else ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; #endif if (config == null) { config = new DecisionApiConfig(); } var fsInstance = GetInstance(); fsInstance._config = config; if (config.LogManager == null) { config.LogManager = new FsLogManager(); } if (string.IsNullOrWhiteSpace(envId) || string.IsNullOrWhiteSpace(apiKey)) { fsInstance.SetStatus(FlagshipStatus.NOT_INITIALIZED); Log.LogError(config, Constants.INITIALIZATION_PARAM_ERROR, Constants.PROCESS_INITIALIZATION); return; } config.EnvId = envId; config.ApiKey = apiKey; fsInstance.SetStatus(FlagshipStatus.STARTING); var httpClient = new HttpClient() { Timeout = config.Timeout ?? TimeSpan.FromMilliseconds(Constants.REQUEST_TIME_OUT) }; IDecisionManager decisionManager = fsInstance._configManager?.DecisionManager; if (decisionManager != null && decisionManager is BucketingManager bucketingManager) { bucketingManager.StopPolling(); } if (config.DecisionMode == DecisionMode.BUCKETING) { decisionManager = new BucketingManager((BucketingConfig)config, httpClient, Murmur.MurmurHash.Create32()); _ = ((BucketingManager)decisionManager).StartPolling(); } else { decisionManager = new ApiManager(config, httpClient); } var trackingManager = new TrackingManager(config, httpClient); decisionManager.StatusChange += DecisionManager_StatusChange; if (fsInstance._configManager == null) { fsInstance._configManager = new ConfigManager(config, decisionManager, trackingManager); } else { fsInstance._configManager.DecisionManager = decisionManager; fsInstance._configManager.TrackingManager = trackingManager; } fsInstance.SetStatus(FlagshipStatus.READY); Log.LogInfo(config, string.Format(Constants.SDK_STARTED_INFO, Constants.SDK_VERSION), Constants.PROCESS_INITIALIZATION); }
public TrackingManager(FlagshipConfig config, HttpClient httpClient) { Config = config; HttpClient = httpClient; }