public Sender(FlagshipContext flagshipContext) { environmentId = flagshipContext.EnvironmentId; exceptionHandler = flagshipContext.ExceptionHandler; logger = flagshipContext.Logger; httpClient = new HttpClient(); }
public FlagshipVisitorService(FlagshipContext flagshipContext) { this.flagshipContext = flagshipContext; decisionManager = flagshipContext.DecisionManager; sender = flagshipContext.Sender; exceptionHandler = flagshipContext.ExceptionHandler; logger = flagshipContext.Logger; }
public APIDecisionManager(FlagshipContext flagshipContext) { httpClient = new HttpClient { Timeout = flagshipContext.Options?.Timeout ?? DefaultTimeout }; httpClient.DefaultRequestHeaders.Add("x-api-key", flagshipContext.ApiKey); environmentId = flagshipContext.EnvironmentId; }
public BucketingClient(FlagshipContext flagshipContext) { environmentId = flagshipContext.EnvironmentId; logger = flagshipContext.Logger; sender = flagshipContext.Sender; httpClient = new HttpClient(); targetingMatch = new TargetingMatch(logger); variationAllocation = new VariationAllocation(logger); var interval = flagshipContext.Options?.BucketingPollingInterval ?? DefaultPollingInterval; loadTimer = new Timer(async(object state) => await LoadConfig(), this, interval, interval); LoadConfig(); }
public static IFlagshipVisitor Create(string environmentId, string apiKey, string visitorId, IDictionary <string, object> context, DecisionResponse mockResponse, HttpClient customClient = null) { var mockClient = new Mock <IDecisionManager>(); mockClient.Setup(foo => foo.GetResponse(It.IsAny <DecisionRequest>())).Returns(Task.FromResult(mockResponse)); var logger = new DefaultLogger(); var errorHandler = new DefaultExceptionHandler(); var flagshipContext = new FlagshipContext(environmentId, apiKey); var sender = new Sender(flagshipContext); if (customClient != null) { var senderClient = sender.GetType().GetField("httpClient", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); senderClient.SetValue(sender, customClient); } var contextSender = flagshipContext.GetType().GetField("Sender", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); contextSender.SetValue(flagshipContext, sender); var flagshipVisitorService = new FlagshipVisitorService(flagshipContext); var decisionManager = flagshipVisitorService.GetType().GetField("decisionManager", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); decisionManager.SetValue(flagshipVisitorService, mockClient.Object); var flagship = new FlagshipClient(flagshipContext); var fsVisService = flagship.GetType().GetField("fsVisitorService", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); fsVisService.SetValue(flagship, flagshipVisitorService); var flagshipVisitor = flagship.NewVisitor(visitorId, context); return(flagshipVisitor); }