// Token: 0x06001B4C RID: 6988 RVA: 0x00067418 File Offset: 0x00065618 protected override bool InternalExecute() { if (this.datapoints == null || this.datapoints.Length == 0) { return(true); } InstrumentationSettings instrumentationSettings = this.GetInstrumentationSettings(); if (!instrumentationSettings.IsInstrumentationEnabled()) { return(true); } UserContext userContext = this.GetUserContext(); Stopwatch stopwatch = Stopwatch.StartNew(); Datapoint chunkHeaderDatapoint = this.GetChunkHeaderDatapoint(this.datapoints[0].Time); int num; IDictionary <DatapointConsumer, LogDatapoint.ClientLogEventList> dictionary = this.TriageAndConvertDatapoints(userContext, chunkHeaderDatapoint, instrumentationSettings, out num); long elapsedMilliseconds = stopwatch.ElapsedMilliseconds; IList <ClientLogEvent> events = dictionary[DatapointConsumer.Watson].Events; if (events.Count > 0 && instrumentationSettings.IsClientWatsonEnabled) { this.clientWatsonHandler.ReportWatsonEvents(userContext, events, chunkHeaderDatapoint, this.datapoints); } FaultInjection.GenerateFault((FaultInjection.LIDs) 3804638525U); stopwatch.Restart(); this.analyticsLogger(dictionary[DatapointConsumer.Analytics].Events); this.diagnosticsLogger(dictionary[DatapointConsumer.Diagnostics].Events); long elapsedMilliseconds2 = stopwatch.ElapsedMilliseconds; long num2 = 0L; long num3 = 0L; int num4 = 0; if (this.isOwa && dictionary[DatapointConsumer.Inference].Events.Count > 0) { stopwatch.Restart(); IActivityLogger activityLogger = this.GetActivityLogger(); if (activityLogger != null) { IList <Activity> list = this.CreateInferenceActivities(dictionary[DatapointConsumer.Inference].Events); num2 = stopwatch.ElapsedMilliseconds; num3 = 0L; if (list.Count > 0) { num4 = list.Count; stopwatch.Restart(); this.WriteInferenceActivities(list, activityLogger); num3 = stopwatch.ElapsedMilliseconds; } } } base.CallContext.ProtocolLog.Set(LogDatapointMetadata.CreateDatapointEventsElapsed, elapsedMilliseconds); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.TotalDatapointSize, num); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.AnalyticsDatapointCount, dictionary[DatapointConsumer.Analytics].Events.Count); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.AnalyticsDatapointSize, dictionary[DatapointConsumer.Analytics].DatapointTotalSize); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceDatapointCount, dictionary[DatapointConsumer.Inference].Events.Count); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceDatapointSize, dictionary[DatapointConsumer.Inference].DatapointTotalSize); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.DiagnosticsDatapointCount, dictionary[DatapointConsumer.Diagnostics].Events.Count); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.DiagnosticsDatapointSize, dictionary[DatapointConsumer.Diagnostics].DatapointTotalSize); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.WatsonDatapointCount, dictionary[DatapointConsumer.Watson].Events.Count); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.WatsonDatapointSize, dictionary[DatapointConsumer.Watson].DatapointTotalSize); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.DatapointsToLoggerElapsed, elapsedMilliseconds2); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceActivitiesToMailboxCount, num4); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.CreateInferenceActivitiesElapsed, num2); base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceActivitiesToMailboxElapsed, num3); return(true); }
// Token: 0x06001B54 RID: 6996 RVA: 0x0006787C File Offset: 0x00065A7C private IDictionary <DatapointConsumer, LogDatapoint.ClientLogEventList> TriageAndConvertDatapoints(UserContext userContext, Datapoint header, InstrumentationSettings settings, out int totalDatapointSize) { string userContextId = this.GetUserContextId(); string clientAddress = this.GetClientAddress(); string userName = this.isOwa ? base.CallContext.GetEffectiveAccessingSmtpAddress() : "ExternalUser"; string cookieValueAndSetIfNull = ClientIdCookie.GetCookieValueAndSetIfNull(HttpContext.Current); ClientLogEvent header2 = new ClientLogEvent(header, userContextId, clientAddress, userName, this.serverVersion, base.CallContext.IsMowa, cookieValueAndSetIfNull); DatapointConsumer enabledConsumers = this.GetEnabledConsumers(settings); totalDatapointSize = 0; LogDatapoint.ClientLogEventList clientLogEventList = new LogDatapoint.ClientLogEventList(DatapointConsumer.Analytics, enabledConsumers, header2); LogDatapoint.ClientLogEventList clientLogEventList2 = new LogDatapoint.ClientLogEventList(DatapointConsumer.Diagnostics, enabledConsumers, header2); LogDatapoint.ClientLogEventList clientLogEventList3 = new LogDatapoint.ClientLogEventList(DatapointConsumer.Inference, enabledConsumers, null); LogDatapoint.ClientLogEventList clientLogEventList4 = new LogDatapoint.ClientLogEventList(DatapointConsumer.Watson, enabledConsumers, null); int num = 0; if (userContext != null && this.datapoints[0].Id == "SessionInfo") { num = 1; Datapoint datapoint = this.datapoints[0]; ClientLogEvent clientLogEvent = new ClientLogEvent(datapoint, userContextId, clientAddress, userName, this.serverVersion, base.CallContext.IsMowa, cookieValueAndSetIfNull); userContext.LogEventCommonData.UpdateClientData(clientLogEvent.DatapointProperties); this.clientVersion = userContext.LogEventCommonData.ClientBuild; clientLogEvent.UpdateTenantInfo(userContext); clientLogEvent.UpdateNetid(userContext); clientLogEvent.UpdateMailboxGuid(userContext.ExchangePrincipal); clientLogEvent.UpdateDatabaseInfo(userContext); clientLogEvent.UpdateFlightInfo(userContext.LogEventCommonData); clientLogEvent.UpdatePassThroughProxyInfo(this.isFromPassThroughProxy); clientLogEvent.UpdateUserAgent(userContext.UserAgent); clientLogEventList.CheckAndAdd(clientLogEvent); clientLogEventList3.CheckAndAdd(clientLogEvent); clientLogEventList2.CheckAndAdd(clientLogEvent); clientLogEventList4.CheckAndAdd(clientLogEvent); } for (int i = num; i < this.datapoints.Length; i++) { Datapoint datapoint2 = this.datapoints[i]; totalDatapointSize += datapoint2.Size; if ((enabledConsumers & datapoint2.Consumers) != DatapointConsumer.None) { ClientLogEvent clientLogEvent2 = new ClientLogEvent(datapoint2, userContextId, clientAddress, userName, this.serverVersion, base.CallContext.IsMowa, cookieValueAndSetIfNull); if (userContext != null) { clientLogEvent2.UpdateClientBuildVersion(userContext.LogEventCommonData); string id; if (clientLogEventList.CheckAndAdd(clientLogEvent2) && (id = datapoint2.Id) != null) { if (< PrivateImplementationDetails > { 4041ACEF - 19DC - 4DB7 - 9F 0C - 17DA902ABE6A }.$$method0x6001a88 - 1 == null)
internal ClientLogEvent(Datapoint datapoint, string userContext, string ipAddress, string userName, string serverVersion, bool isMowa, string clientIdCookieValue = null) : this(datapoint, userContext, ipAddress, userName, string.Empty, serverVersion, isMowa, clientIdCookieValue) { }
// Token: 0x06001B53 RID: 6995 RVA: 0x00067865 File Offset: 0x00065A65 private static bool ShouldProcessForConsumer(Datapoint datapoint, DatapointConsumer consumer, DatapointConsumer enabledConsumers) { return(datapoint.IsForConsumer(consumer) && (consumer & enabledConsumers) != DatapointConsumer.None); }
internal ClientLogEvent(Datapoint datapoint, string userContext) : this(datapoint, userContext, string.Empty, string.Empty, string.Empty, string.Empty, false, null) { }