Exemple #1
0
 /// <summary>
 /// Execute action on event, using telemetryManifestContext as a provider of the necessary information.
 /// Return true if it is allowed to execute next actions.
 /// Return false action forbids the event.
 /// By default OptOut set IsEventDropped to the true, and exclude all properties.
 /// </summary>
 /// <param name="eventProcessorContext"></param>
 /// <returns>Indicator, whether current action is not explicitely forbid current event</returns>
 public bool Execute(IEventProcessorContext eventProcessorContext)
 {
     if (!eventProcessorContext.HostTelemetrySession.IsOptedIn)
     {
         TelemetryEvent telemetryEvent = eventProcessorContext.TelemetryEvent;
         if (!telemetryEvent.IsOptOutFriendly && !optoutFriendlyEvents.Contains(telemetryEvent.Name))
         {
             eventProcessorContext.IsEventDropped = true;
         }
         foreach (string item in new List <string>(telemetryEvent.Properties.Keys))
         {
             if ((!telemetryEvent.IsOptOutFriendly || TelemetryEvent.IsPropertyNameReserved(item) || TelemetryContext.IsPropertyNameReserved(item)) && !optoutFriendlyProperties.Contains(item))
             {
                 eventProcessorContext.ExcludePropertyFromEvent(item);
             }
         }
     }
     return(true);
 }
Exemple #2
0
 /// <summary>
 /// Validate event. Ensure that event regular properties doesn't contain Reserved. prefix
 /// </summary>
 /// <param name="telemetryEvent"></param>
 internal static void ValidateEvent(TelemetryEvent telemetryEvent)
 {
     CodeContract.RequiresArgumentNotNull <TelemetryEvent>(telemetryEvent, "telemetryEvent");
     foreach (KeyValuePair <string, object> property in telemetryEvent.Properties)
     {
         if (property.Key.StartsWith("Reserved.", StringComparison.Ordinal) && TelemetryEvent.IsPropertyNameReserved(property.Key))
         {
             throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "property '{0}' has reserved prefix 'Reserved'", new object[1]
             {
                 property.Key
             }));
         }
     }
 }
Exemple #3
0
        /// <summary>
        /// Validate coming event
        /// </summary>
        /// <param name="eventProcessorContext"></param>
        /// <returns></returns>
        public bool Execute(IEventProcessorContext eventProcessorContext)
        {
            TelemetryEvent telemetryEvent = eventProcessorContext.TelemetryEvent;

            if (TelemetryContext.IsEventNameContextPostProperty(telemetryEvent.Name))
            {
                return(telemetryEvent.Properties.Any((KeyValuePair <string, object> p) => !TelemetryEvent.IsPropertyNameReserved(p.Key) && !TelemetryContext.IsPropertyNameReserved(p.Key)));
            }
            return(true);
        }