internal virtual void CheckMyStoreIdAndMastersStoreId(StoreId myStoreId, URI masterUri) { ClusterMembers clusterMembers = ResolveDatabaseDependency(typeof(ClusterMembers)); InstanceId serverId = HighAvailabilityModeSwitcher.getServerId(masterUri); IEnumerable <ClusterMember> members = clusterMembers.Members; ClusterMember master = firstOrNull(filter(hasInstanceId(serverId), members)); if (master == null) { throw new System.InvalidOperationException("Cannot find the master among " + members + " with master serverId=" + serverId + " and uri=" + masterUri); } StoreId masterStoreId = master.StoreId; if (!myStoreId.Equals(masterStoreId)) { throw new MismatchingStoreIdException(myStoreId, master.StoreId); } else if (!myStoreId.EqualsByUpgradeId(master.StoreId)) { throw new BranchedDataException("My store with " + myStoreId + " was updated independently from " + "master's store " + masterStoreId); } }