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);
 }
Esempio n. 3
0
        internal ClusterLocator(TargetClientConfig clientConfig, ITargetService targetService)
        {
            if (clientConfig.DecisioningMethod == DecisioningMethod.ServerSide)
            {
                return;
            }

            this.FetchLocation(targetService);
        }
Esempio n. 4
0
 /// <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;
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
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);
        }
Esempio n. 7
0
 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> >();
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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)));
        }
Esempio n. 10
0
 public DecisioningRuleExecutor(TargetClientConfig clientConfig)
 {
     this.clientConfig = clientConfig;
     this.evaluator    = new JsonLogicEvaluator(EvaluateOperators.Default);
 }
 private string GetGeoUrl(TargetClientConfig clientConfig)
 {
     return(Uri.UriSchemeHttps + "://" + clientConfig.OnDeviceConfigHostname + GeoPath);
 }
Esempio n. 12
0
 private string GetGeoUrl(TargetClientConfig clientConfig)
 {
     return(clientConfig.Protocol + clientConfig.OnDeviceConfigHostname + GeoPath);
 }
 public DecisioningDetailsExecutor(TargetClientConfig clientConfig)
 => this.ruleExecutor = new DecisioningRuleExecutor(clientConfig);