public new PageViewPerfData DeepClone() { var other = new PageViewPerfData(); this.ApplyProperties(other); return(other); }
/// <summary> /// Initializes a new instance of the <see cref="PageViewPerformanceTelemetry"/> class by cloning an existing instance. /// </summary> /// <param name="source">Source instance of <see cref="PageViewPerformanceTelemetry"/> to clone from.</param> private PageViewPerformanceTelemetry(PageViewPerformanceTelemetry source) { this.Data = source.Data.DeepClone(); this.Context = source.Context.DeepClone(this.Data.properties); this.extension = source.extension?.DeepClone(); this.samplingPercentage = source.samplingPercentage; this.ProactiveSamplingDecision = source.ProactiveSamplingDecision; }
/// <summary> /// Initializes a new instance of the <see cref="PageViewPerformanceTelemetry"/> class by cloning an existing instance. /// </summary> /// <param name="source">Source instance of <see cref="PageViewPerformanceTelemetry"/> to clone from.</param> private PageViewPerformanceTelemetry(PageViewPerformanceTelemetry source) { this.Data = source.Data.DeepClone(); this.Context = source.Context.DeepClone(this.Data.properties); this.extension = source.extension?.DeepClone(); this.samplingPercentage = source.samplingPercentage; this.IsSampledOutAtHead = source.IsSampledOutAtHead; }
/// <summary> /// Create handler for page view performance telemetry. /// </summary> private Action <ITelemetry> CreateHandlerForPageViewPerformanceTelemetry(EventSource eventSource, MethodInfo writeGenericMethod, Type eventSourceOptionsType, PropertyInfo eventSourceOptionsKeywordsProperty) { var eventSourceOptions = Activator.CreateInstance(eventSourceOptionsType); var keywords = Keywords.PageViews; eventSourceOptionsKeywordsProperty.SetValue(eventSourceOptions, keywords); var dummyPageViewPerfData = new PageViewPerfData(); var writeMethod = writeGenericMethod.MakeGenericMethod(new { PartA_iKey = this.dummyPartAiKeyValue, PartA_Tags = this.dummyPartATagsValue, PartB_PageViewPerfData = new { // The properties and layout should be the same as PageViewPerfData_types.cs (EventData_types.cs) dummyPageViewPerfData.perfTotal, dummyPageViewPerfData.networkConnect, dummyPageViewPerfData.sentRequest, dummyPageViewPerfData.receivedResponse, dummyPageViewPerfData.domProcessing, dummyPageViewPerfData.url, dummyPageViewPerfData.duration, dummyPageViewPerfData.ver, dummyPageViewPerfData.name, dummyPageViewPerfData.properties, dummyPageViewPerfData.measurements, }, }.GetType()); return((item) => { if (this.EventSourceInternal.IsEnabled(EventLevel.Verbose, keywords)) { var telemetryItem = item as PageViewTelemetry; CopyGlobalPropertiesIfRequired(item, telemetryItem.Properties); item.Sanitize(); var data = telemetryItem.Data; var extendedData = new { // The properties and layout should be the same as the anonymous type in the above MakeGenericMethod PartA_iKey = telemetryItem.Context.InstrumentationKey, PartA_Tags = telemetryItem.Context.SanitizedTags, PartB_PageViewPerfData = new { data.url, data.duration, data.ver, data.name, data.properties, data.measurements, }, }; writeMethod.Invoke(eventSource, new object[] { PageViewTelemetry.TelemetryName, eventSourceOptions, extendedData }); } }); }
protected override void ApplyProperties(EventData other) { base.ApplyProperties(other); PageViewPerfData otherPageViewPerf = other as PageViewPerfData; if (otherPageViewPerf != null) { otherPageViewPerf.domProcessing = this.domProcessing; otherPageViewPerf.perfTotal = this.perfTotal; otherPageViewPerf.networkConnect = this.networkConnect; otherPageViewPerf.sentRequest = this.sentRequest; otherPageViewPerf.receivedResponse = this.receivedResponse; } }
/// <summary> /// Initializes a new instance of the <see cref="PageViewPerformanceTelemetry"/> class by cloning an existing instance. /// </summary> /// <param name="source">Source instance of <see cref="PageViewPerformanceTelemetry"/> to clone from.</param> private PageViewPerformanceTelemetry(PageViewPerformanceTelemetry source) { this.Data = source.Data.DeepClone(); this.Context = source.Context.DeepClone(this.Data.properties); this.extension = source.extension?.DeepClone(); }
/// <summary> /// Initializes a new instance of the <see cref="PageViewPerformanceTelemetry"/> class. /// </summary> public PageViewPerformanceTelemetry() { this.Data = new PageViewPerfData(); this.Context = new TelemetryContext(this.Data.properties); }