internal void RefreshCounters(bool updateDatabases, bool updateStatistics) { if (updateDatabases) { IEnumerable <MailboxDatabase> enumerable; if (MailboxDatabase.TryDiscoverLocalMailboxDatabases(out enumerable)) { this.currentDatabases = enumerable; } else { this.lastMailboxDatabaseNameRefresh = DateTime.MinValue; Log.LogErrorMessage("Unable to discover any mailbox databases in AD for the '{0}' server.", new object[] { Environment.MachineName }); } } if (updateStatistics && this.currentDatabases != null) { Dictionary <MailboxDatabase, List <MailboxDatabaseCalculatedCounters.DiagnosticMeasurementValue> > dictionary; if (MailboxDatabaseCalculatedCounters.TryCreateCounters(this.currentDatabases, out dictionary)) { this.currentCounters = dictionary; } else { this.lastStatisticsRefresh = DateTime.MinValue; Log.LogErrorMessage("Unable to create counters.", new object[0]); } } this.doingWork = false; }
private IEnumerable <MailboxDatabase> GetAllDatabasesOnLocalServer() { IEnumerable <MailboxDatabase> enumerable = this.allDatabasesOnLocalServer; if ((enumerable == null || DateTime.UtcNow - this.lastMailboxDatabaseRefreshTime >= this.databaseRefreshFrequency) && MailboxDatabase.TryDiscoverLocalMailboxDatabases(out enumerable)) { this.lastMailboxDatabaseRefreshTime = DateTime.UtcNow; } return(enumerable); }