// Token: 0x06001A91 RID: 6801 RVA: 0x0006F524 File Offset: 0x0006D724 private void AddCacheEntry(ProxyAddress proxyAddress, Result <TEntry> result, bool isLockRequired, bool populateCalculatedProperties) { TEntry data = result.Data; if (populateCalculatedProperties && data != null) { this.PopulateCalculatedProperties(data); } this.SetEntry(proxyAddress, result, isLockRequired); if (data == null) { return; } ProxyAddress primarySmtpAddress = ADRecipientCache <TEntry> .GetPrimarySmtpAddress(data); if (ADRecipientCache <TEntry> .IsSmtpAddress(proxyAddress)) { ProxyAddress proxyAddress2 = ProxyAddress.Parse(ProxyAddressPrefix.LegacyDN.PrimaryPrefix, ADRecipientCache <TEntry> .GetLegacyExchangeDN(data)); this.SetEntry(proxyAddress2, result, isLockRequired); if (null != primarySmtpAddress && primarySmtpAddress != proxyAddress) { this.SetEntry(primarySmtpAddress, result, isLockRequired); return; } } else if (primarySmtpAddress != null) { this.SetEntry(primarySmtpAddress, result, isLockRequired); } }
// Token: 0x06001A79 RID: 6777 RVA: 0x0006EA5C File Offset: 0x0006CC5C public virtual bool Remove(ProxyAddress proxyAddress) { bool result2; lock (this.dictionaryLock) { Result <TEntry> result; if (this.dictionary.TryGetValue(proxyAddress, out result)) { this.dictionary.Remove(proxyAddress); if (result.Data == null) { result2 = true; } else { if (ADRecipientCache <TEntry> .IsExAddress(proxyAddress)) { this.dictionary.Remove(ADRecipientCache <TEntry> .GetPrimarySmtpAddress(result.Data)); } else if (ADRecipientCache <TEntry> .IsSmtpAddress(proxyAddress)) { this.dictionary.Remove(ProxyAddress.Parse(ProxyAddressPrefix.LegacyDN.PrimaryPrefix, ADRecipientCache <TEntry> .GetLegacyExchangeDN(result.Data))); } result2 = true; } } else { result2 = false; } } return(result2); }