private static void InitializeIfNeeded() { if (!LocalServerCache.IsInitialized()) { lock (LocalServerCache.locker) { if (!LocalServerCache.IsInitialized()) { LocalServerCache.timeout = DateTime.UtcNow + LocalServerCache.ExpirationTime; try { LocalServerCache.ReadLocalServer(); LocalServerCache.SubscribeForNotifications(); } catch (LocalizedException arg) { LocalServerCache.Tracer.TraceError <LocalizedException>(0L, "LocalServerCache: unable to initialize due exception: {0}", arg); } if (LocalServerCache.notification != null) { LocalServerCache.timeout = DateTime.MaxValue; } LocalServerCache.initialized = true; } } } }
private static void NotificationHandler(ADNotificationEventArgs args) { LocalServerCache.Tracer.TraceDebug(0L, "LocalServerCache: local server object changed"); try { LocalServerCache.ReadLocalServer(); } catch (LocalizedException arg) { LocalServerCache.Tracer.TraceError <LocalizedException>(0L, "LocalServerCache: failed to read local server object from AD due exception: {0}", arg); return; } if (LocalServerCache.Change != null) { LocalServerCache.Tracer.TraceDebug(0L, "LocalServerCache: notifying subscribers of change."); LocalServerCache.Change(LocalServerCache.localServer); } }
internal static void Initialize() { LocalServerCache.ReadLocalServer(); }