/// <summary>
        /// Dispatches <see cref="ITelemetryData"/> according to its implementation.
        /// </summary>
        private void DispatchTelemetryData(ITelemetryData telemetryData)
        {
            switch (telemetryData)
            {
            case HistoryTelemetryData history:
                SendTelemetry(history);
                break;

            case RequestPredictionTelemetryData requestPrediction:
                SendTelemetry(requestPrediction);
                break;

            case GetSuggestionTelemetryData getSuggestion:
                SendTelemetry(getSuggestion);
                break;

            case SuggestionDisplayedTelemetryData suggestionDisplayed:
                SendTelemetry(suggestionDisplayed);
                break;

            case SuggestionAcceptedTelemetryData suggestionAccepted:
                SendTelemetry(suggestionAccepted);
                break;

            case ParameterMapTelemetryData parameterMap:
                SendTelemetry(parameterMap);
                break;

            default:
                throw new NotImplementedException();
            }
        }
        private void PostTelemetryData(ITelemetryData telemetryData)
        {
            if (!IsDataCollectionAllowed())
            {
                return;
            }

            telemetryData.SessionId     = SessionId;
            telemetryData.CorrelationId = CorrelationId;

            _telemetryDispatcher.Post(telemetryData);
        }
Exemplo n.º 3
0
        private void PostTelemetryData(ITelemetryData telemetryData)
        {
            if (!IsDataCollectionAllowed())
            {
                return;
            }

            telemetryData.SessionId = SessionId;
            telemetryData.RequestId = RequestId;
            telemetryData.CommandId = _commandId;

            _telemetryDispatcher.Post(telemetryData);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Add the common properties to the telemetry event.
 /// </summary>
 private IDictionary <string, string> CreateProperties(ITelemetryData telemetryData)
 {
     return(new Dictionary <string, string>()
     {
         { "SessionId", telemetryData.SessionId },
         { "CorrelationId", telemetryData.CorrelationId },
         { "UserId", _azContext.UserId },
         { "HashMacAddress", _azContext.MacAddress },
         { "PowerShellVersion", _azContext.PowerShellVersion.ToString() },
         { "ModuleVersion", _azContext.ModuleVersion.ToString() },
         { "OS", _azContext.OSVersion },
     });
 }
 /// <summary>
 /// Add the common properties to the telemetry event.
 /// </summary>
 private IDictionary <string, string> CreateProperties(ITelemetryData telemetryData)
 {
     return(new Dictionary <string, string>()
     {
         { "SessionId", telemetryData.SessionId },
         { "CorrelationId", telemetryData.CorrelationId },
         { "UserId", _azContext.UserId },
         { "IsInternal", _azContext.IsInternal.ToString(CultureInfo.InvariantCulture) },
         { "SurveyId", (_azContext as AzContext)?.SurveyId },
         { "HashMacAddress", _azContext.MacAddress },
         { "PowerShellVersion", _azContext.PowerShellVersion.ToString() },
         { "ModuleVersion", _azContext.ModuleVersion.ToString() },
         { "OS", _azContext.OSVersion },
     });
 }
        /// <summary>
        /// Add the common properties to the telemetry event.
        /// </summary>
        private IDictionary <string, string> CreateProperties(ITelemetryData telemetryData, PredictionClient client)
        {
            var properties = TelemetryUtilities.CreateCommonProperties(this._azContext);

            properties.Add("RequestId", telemetryData.RequestId);
            properties.Add("CommandId", telemetryData.CommandId);

            if (client != null)
            {
                properties.Add("ClientId", client.Name);
                properties.Add("ClientType", client.Kind.ToString());
            }

            return(properties);
        }
Exemplo n.º 7
0
        protected override void DispatchTelemetryData(ITelemetryData telemetryData)
        {
            base.DispatchTelemetryData(telemetryData);
            DispatchedTelemetry.Add(telemetryData);

            if (DispatchedTelemetry.Count == ExceptedTelemetryDispatchCount)
            {
                RecordedAggregatedData = CachedAggregatedTelemetryData;

                if (FlushAtDispatch && base.CachedAggregatedTelemetryData.EstimateSuggestionSessionSize > 0)
                {
                    CachedAggregatedTelemetryData.UpdateFromTelemetryData(telemetryData);
                    SendAggregatedTelemetryData();
                }

                DispatchTelemetryTaskCompletionSource?.TrySetResult();
            }
        }
Exemplo n.º 8
0
 private static void EnsureSameSessionId(ITelemetryData expected, ITelemetryData actual)
 {
     Assert.Equal(expected.SessionId, actual.SessionId);
 }
Exemplo n.º 9
0
 private static void EnsureDifferentCorrelationId(ITelemetryData expected, ITelemetryData actual)
 {
     Assert.NotEqual(expected.CorrelationId, actual.CorrelationId);
 }