//Reply from Join request
public void Welcome(Address joinWith, UniqueAddress from, Gossip gossip)
{
if (!_latestGossip.Members.IsEmpty) throw new InvalidOperationException("Welcome can only be done from an empty state");
if (!joinWith.Equals(from.Address))
{
_log.Info("Ignoring welcome from [{0}] when trying to join with [{1}]", from.Address, joinWith);
}
else
{
_log.Info("Welcome from [{0}]", from.Address);
_latestGossip = gossip.Seen(SelfUniqueAddress);
Publish(_latestGossip);
if (!from.Equals(SelfUniqueAddress))
GossipTo(from, Sender);
BecomeInitialized();
}
}