internal static WatermarkMap Parse(string rawstring) { WatermarkMap empty = WatermarkMap.Empty; string[] array = rawstring.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (string text in array) { string[] array3 = text.Split(new string[] { ":" }, StringSplitOptions.None); if (array3.Length != 2) { throw new FormatException(); } Guid key = new Guid(array3[0]); long value = long.Parse(array3[1]); if (!empty.ContainsKey(key)) { empty.Add(key, value); } } return(empty); }
private WatermarkMap FilterOutNotExistingDCs(IEnumerable <ReplicationCursor> adReplicationCursorCollection, PartitionId partitionId) { WatermarkMap watermarkMap = new WatermarkMap(); ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromAccountPartitionRootOrgScopeSet(partitionId), 336, "FilterOutNotExistingDCs", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\Sync\\BackSync\\MergePageToken.cs"); WatermarkMap watermarkMap2 = null; ADServer adserver = topologyConfigurationSession.FindDCByInvocationId(base.WatermarksInvocationId); if (adserver != null) { topologyConfigurationSession.DomainController = adserver.DnsHostName; watermarkMap2 = SyncConfiguration.GetReplicationCursors(topologyConfigurationSession); } foreach (ReplicationCursor replicationCursor in adReplicationCursorCollection) { if (watermarkMap2 == null || watermarkMap2.ContainsKey(replicationCursor.SourceInvocationId)) { watermarkMap[replicationCursor.SourceInvocationId] = replicationCursor.UpToDatenessUsn; } } return(watermarkMap); }