private static TimeSpan GetMaximumAgeLimitFromRegistry(ExpirationLimit limit) { TimeSpan result; using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\MSExchange RBAC", false)) { int num; string name; switch (limit) { case ExpirationLimit.RunspaceRefresh: num = 60; name = "MaximumAge"; break; case ExpirationLimit.ExternalAccountRunspaceTermination: num = 1440; name = "MaximumAgeExternalAccount"; break; default: throw new ArgumentOutOfRangeException("limit"); } if (registryKey != null) { object value = registryKey.GetValue(name); if (value != null && value is int) { int num2 = (int)value; if (num2 > 0) { num = num2; } } } result = TimeSpan.FromMinutes((double)num); } return(result); }
private bool IsMaximumAgeLimitExceeded(ExpirationLimit limit) { return(DateTime.UtcNow >= this.maxAgeLimits[(int)limit]); }
public static TimeSpan GetMaximumAgeLimit(ExpirationLimit limit) { ExchangeExpiringRunspaceConfiguration.RefreshLimitsFromRegistryIfNeeded(); return(ExchangeExpiringRunspaceConfiguration.ExpiryPeriods[(int)limit]); }
private void SetMaxAgeLimit(ExpirationLimit limit) { this.maxAgeLimits[(int)limit] = DateTime.UtcNow.Add(ExchangeExpiringRunspaceConfiguration.GetMaximumAgeLimit(limit)); }