Bus.Transport.Network.PeerManager.UpdateShadows C# (CSharp) Метод

UpdateShadows() приватный Метод

private UpdateShadows ( ServicePeer peer ) : void
peer ServicePeer
Результат void
        private void UpdateShadows(ServicePeer peer)
        {
            foreach (var shadowedPeer in peer.ShadowedPeers ?? Enumerable.Empty<ShadowedPeerConfiguration>())
            {
                _peersToTheirShadows.AddOrUpdate(shadowedPeer.PeerPeerId,
                                            new HashSet<ServicePeerShadowInformation> { new ServicePeerShadowInformation(peer, shadowedPeer.IsPersistenceProvider) },
                                            (key, oldValue) =>
                                            {
                                                oldValue.Add(new ServicePeerShadowInformation(peer, shadowedPeer.IsPersistenceProvider));
                                                return oldValue;
                                            });
            }

            foreach (var pair in _peersToTheirShadows)
            {
                var previousEntry = pair.Value.SingleOrDefault(x => x.ServicePeer == peer);
                if (previousEntry != null && !peer.ShadowedPeers.Select(x => x.PeerPeerId).Contains(pair.Key))
                    pair.Value.Remove(previousEntry);
            }
        }