private IEnumerable <T> BuildMailboxBatchFromAD <T>(List <IMailboxBuilder <T> > builders, PropertyDefinition[] properties) where T : ILocatableMailbox { Stopwatch stopwatch = null; if (MailboxCollectionBuilder.Tracer.IsTraceEnabled(TraceType.DebugTrace)) { stopwatch = new Stopwatch(); stopwatch.Start(); } string[] legacyDNs = builders.Select(delegate(IMailboxBuilder <T> builder) { T mailbox2 = builder.Mailbox; return(mailbox2.Locator.LegacyDn); }).ToArray <string>(); Result <ADRawEntry>[] results = this.adSession.FindByLegacyExchangeDNs(legacyDNs, properties); if (MailboxCollectionBuilder.Tracer.IsTraceEnabled(TraceType.DebugTrace)) { stopwatch.Stop(); MailboxCollectionBuilder.Tracer.TraceDebug <long>(0L, "MailboxCollectionBuilder::BuildMailboxesFromAD. Batch AD Query took {0} ms.", stopwatch.ElapsedMilliseconds); } var pairs = builders.Zip(results, (IMailboxBuilder <T> builder, Result <ADRawEntry> adResult) => new { Builder = builder, ADResult = adResult }); foreach (var pair in pairs) { if (pair.ADResult.Error != null || pair.ADResult.Data == null) { Microsoft.Exchange.Diagnostics.Trace tracer = MailboxCollectionBuilder.Tracer; long id = (long)this.GetHashCode(); string formatString = "MailboxCollectionBuilder::BuildMailboxesFromAD. Unable to find LegacyDN {0} in AD using the batch query: {1}"; T mailbox = pair.Builder.Mailbox; tracer.TraceWarning <string, string>(id, formatString, mailbox.Locator.LegacyDn, (pair.ADResult.Error != null) ? pair.ADResult.Error.ToString() : "Result.Data is null"); ADUser groupADUser; if (this.TryGetGroupADUserFromADCache(pair.Builder.Mailbox, out groupADUser)) { yield return(pair.Builder.BuildFromDirectory(groupADUser).Mailbox); } } else { yield return(pair.Builder.BuildFromDirectory(pair.ADResult.Data).Mailbox); } } yield break; }
internal static void TraceInformation(Microsoft.Exchange.Diagnostics.Trace trace, string formatString, params object[] args) { trace.Information(0L, formatString, args); }
internal static void ExitFunction(Microsoft.Exchange.Diagnostics.Trace trace, string functionName) { trace.TraceFunction <string>(0L, Logger.traceFunctionExitString, functionName); }
// Token: 0x0600003F RID: 63 RVA: 0x00003070 File Offset: 0x00001270 internal static void TraceError(Microsoft.Exchange.Diagnostics.Trace trace, string formatString, params object[] args) { trace.TraceError(0L, formatString + Logger.appDomainTraceInfo, args); }
internal static T GetValueFromRegistry <T>(string registryPath, string valueName, T defaultValue, Microsoft.Exchange.Diagnostics.Trace tracer) { T result = defaultValue; try { using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(registryPath, false)) { if (registryKey != null) { object value = registryKey.GetValue(valueName, defaultValue); if (value is T) { tracer.TraceDebug <string, object>(0L, "Using {0} = {1} (from registry)", valueName, value); result = (T)((object)value); } else { tracer.TraceError <string, string, T>(0L, "{0} has wrong type {1}, using {2}.", valueName, (value == null) ? "<undefined>" : value.GetType().Name, defaultValue); } } else { tracer.TraceError <string, T>(0L, "Opening registry key {0} failed, using {1}.", valueName, defaultValue); } } } catch (SecurityException ex) { tracer.TraceError <string>(0L, "SecurityException: {0}", ex.Message); } catch (UnauthorizedAccessException ex2) { tracer.TraceError <string>(0L, "UnauthorizedAccessException: {0}", ex2.Message); } return(result); }
internal static T GetEnumValueFromRegistry <T>(string registryPath, string valueName, T defaultValue, Microsoft.Exchange.Diagnostics.Trace tracer) where T : struct { string valueFromRegistry = Globals.GetValueFromRegistry <string>(registryPath, valueName, defaultValue.ToString(), tracer); T result; if (Enum.TryParse <T>(valueFromRegistry, out result)) { tracer.TraceDebug <string, string>(0L, "Using enum {0} = {1} (from registry)", valueName, valueFromRegistry); return(result); } tracer.TraceError <string, string, T>(0L, "{0} has wrong enum value: {1}, using {2}.", valueName, valueFromRegistry, defaultValue); return(defaultValue); }
public AdminAuditWriter(Microsoft.Exchange.Diagnostics.Trace tracer) { this.Tracer = tracer; }
private void TraceAndLogError(Microsoft.Exchange.Diagnostics.Trace tracer, string format, params object[] parameters) { tracer.TraceError((long)this.GetHashCode(), format, parameters); this.log.Log(DiagnosticsAggregationEvent.ServiceletError, format, parameters); }
public MrsTracerInstance(Microsoft.Exchange.Diagnostics.Trace traceObj, string name) { this.Tracer = traceObj; this.Name = name; }