// 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();
        }