// Token: 0x06000331 RID: 817 RVA: 0x0001196C File Offset: 0x0000FB6C private static void RefreshAllAccountPartitions() { if (!Globals.IsMicrosoftHostedOnly) { ADAccountPartitionLocator.allAccountPartitionIds = new PartitionId[0]; ADAccountPartitionLocator.allExplicitlyConfiguredAccountPartitionIds = new PartitionId[0]; ADAccountPartitionLocator.allExplicitlyConfiguredPrimaryAccountPartitionIds = new PartitionId[0]; return; } AccountPartition[] array = ADAccountPartitionLocator.ReadAccountPartitionsFromAD(); IOrderedEnumerable <AccountPartition> orderedEnumerable = from x in array orderby x.WhenCreatedUTC descending select x; Dictionary <Guid, string> dictionary = new Dictionary <Guid, string>(); Dictionary <string, Guid> dictionary2 = new Dictionary <string, Guid>(StringComparer.OrdinalIgnoreCase); List <PartitionId> list = new List <PartitionId>(array.Length); List <PartitionId> list2 = new List <PartitionId>(array.Length); List <PartitionId> list3 = new List <PartitionId>(array.Length); bool flag = false; PartitionId partitionId = null; foreach (AccountPartition accountPartition in orderedEnumerable) { if (accountPartition.TryGetPartitionId(out partitionId)) { list.Add(partitionId); dictionary.Add(partitionId.PartitionObjectId.Value, partitionId.ForestFQDN); dictionary2.Add(partitionId.ForestFQDN, partitionId.PartitionObjectId.Value); if (accountPartition.EnabledForProvisioning) { list3.Add(partitionId); } if (!accountPartition.IsSecondary) { list2.Add(partitionId); } } if (accountPartition.IsLocalForest) { flag = true; } } if (list.Count == 0) { partitionId = new PartitionId(PartitionId.LocalForest.ForestFQDN, ADObjectId.ResourcePartitionGuid); list.Add(partitionId); list3.Add(partitionId); } lock (ADAccountPartitionLocator.modifySyncObject) { ADAccountPartitionLocator.allAccountPartitionIds = list.ToArray(); ADAccountPartitionLocator.allExplicitlyConfiguredAccountPartitionIds = list.ToArray(); ADAccountPartitionLocator.allExplicitlyConfiguredPrimaryAccountPartitionIds = list2.ToArray(); ADAccountPartitionLocator.allAccountPartitionIdsEnabledForProvisioning = list3.ToArray(); ADAccountPartitionLocator.partitionsGuidToFQDN = dictionary; ADAccountPartitionLocator.partitionsFQDNToGuid = dictionary2; if (!flag) { partitionId = new PartitionId(PartitionId.LocalForest.ForestFQDN, ADObjectId.ResourcePartitionGuid); PartitionId[] array2 = new PartitionId[ADAccountPartitionLocator.allAccountPartitionIds.Length + 1]; array2[0] = partitionId; Array.Copy(ADAccountPartitionLocator.allAccountPartitionIds, 0, array2, 1, ADAccountPartitionLocator.allAccountPartitionIds.Length); ADAccountPartitionLocator.allAccountPartitionIds = array2; ADAccountPartitionLocator.partitionsFQDNToGuid.Add(partitionId.ForestFQDN, partitionId.PartitionObjectId.Value); ADAccountPartitionLocator.partitionsGuidToFQDN.Add(partitionId.PartitionObjectId.Value, partitionId.ForestFQDN); } } ADAccountPartitionLocator.crossRFLookupCheckEnabled = ADAccountPartitionLocator.UpdateCrossRFLookupCheckEnabled(); }