internal GeoClient(TargetClientConfig clientConfig) { this.restClient = new RestClient(this.GetGeoUrl(clientConfig)) { Timeout = clientConfig.Timeout, Proxy = clientConfig.Proxy, }; }
internal RuleLoader(TargetClientConfig clientConfig) { this.clientConfig = clientConfig; this.timerStartDelayMs = clientConfig.OnDeviceDecisioningPollingIntSecs * 1000; this.logger = TargetClient.Logger; this.SetLocalRules(); this.ScheduleTimer(0); }
internal ClusterLocator(TargetClientConfig clientConfig, ITargetService targetService) { if (clientConfig.DecisioningMethod == DecisioningMethod.ServerSide) { return; } this.FetchLocation(targetService); }
/// <summary> /// Initializes a new instance of the <see cref="TargetService"/> class. /// </summary> /// <param name="clientConfig">Target Client Config <see cref="TargetClientConfig"/></param> internal TargetService(TargetClientConfig clientConfig) { this.clientConfig = clientConfig; this.logger = TargetClient.Logger; this.stickyBaseUrl = this.clientConfig.DefaultUrl; this.deliveryApi = new DeliveryApi(this.GetDeliveryApiConfig(this.stickyBaseUrl)); RetryConfiguration.RetryPolicy = clientConfig.RetryPolicy; RetryConfiguration.AsyncRetryPolicy = clientConfig.AsyncRetryPolicy; }
internal RuleLoader(TargetClientConfig clientConfig) { this.clientConfig = clientConfig; this.PollingInterval = clientConfig.OnDeviceDecisioningPollingIntSecs * 1000; this.logger = TargetClient.Logger; this.SetLocalRules(); if (clientConfig.LocalArtifactOnly) { return; } this.ScheduleTimer(0); }
internal static void AddTelemetry(this TargetDeliveryRequest request, TargetClientConfig config, int?execution = default) { var telemetryEntry = request.GetTelemetryEntry(config, execution); if (telemetryEntry == null) { return; } var deliveryRequest = request.DeliveryRequest; deliveryRequest.Telemetry ??= new Delivery.Model.Telemetry(new List <TelemetryEntry>()); deliveryRequest.Telemetry.Entries.Add(telemetryEntry); }
internal TraceHandler( TargetClientConfig clientConfig, IRuleLoader ruleLoader, OnDeviceDecisioningRuleSet ruleSet, TargetDeliveryRequest request) { this.ruleSet = ruleSet; this.trace = new Dictionary <string, object> { { ClientCodeKey, clientConfig.Client }, { ArtifactKey, this.ArtifactTrace(ruleLoader) }, { ProfileKey, ProfileTrace(request.DeliveryRequest.Id) }, }; this.campaigns = new Dictionary <long, IDictionary <string, object> >(); this.evaluatedTargets = new Dictionary <long, IDictionary <string, object> >(); }
internal static void AddTelemetry(DeliveryRequest request, TargetClientConfig config, int execution = 0) { if (!config.TelemetryEnabled) { return; } request.Telemetry ??= new Delivery.Model.Telemetry(new List <TelemetryEntry>()); var entry = new TelemetryEntry( request.RequestId, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), execution, new TelemetryFeatures(config.DecisioningMethod)); request.Telemetry.Entries.Add(entry); }
internal static TelemetryEntry GetTelemetryEntry(this TargetDeliveryRequest request, TargetClientConfig config, int?execution = default) { if (!config.TelemetryEnabled) { return(null); } var decisioningMethod = request.DecisioningMethod != default(DecisioningMethod) ? request.DecisioningMethod : config.DecisioningMethod; return(new TelemetryEntry( request.DeliveryRequest.RequestId, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), execution, new TelemetryFeatures(decisioningMethod))); }
public DecisioningRuleExecutor(TargetClientConfig clientConfig) { this.clientConfig = clientConfig; this.evaluator = new JsonLogicEvaluator(EvaluateOperators.Default); }
private string GetGeoUrl(TargetClientConfig clientConfig) { return(Uri.UriSchemeHttps + "://" + clientConfig.OnDeviceConfigHostname + GeoPath); }
private string GetGeoUrl(TargetClientConfig clientConfig) { return(clientConfig.Protocol + clientConfig.OnDeviceConfigHostname + GeoPath); }
public DecisioningDetailsExecutor(TargetClientConfig clientConfig) => this.ruleExecutor = new DecisioningRuleExecutor(clientConfig);