/// <summary> /// /// </summary> /// <param name="server">server to replicate to</param> /// <param name="serverURL">Server's url to replicate to</param> private void ReplicatePadInts(IDataServer server, String serverURL) { List<PadIntMetadata> toRemove = new List<PadIntMetadata>(); foreach (PadIntMetadata meta in nonReplicatedPadInts) { IDataServer dataServer = (IDataServer)Activator.GetObject( typeof(IDataServer), meta.servers.ToArray()[0]); //there's only one element in the list after removing the faulty server PadInt p = dataServer.AccessPadInt(meta.uid); server.StorePadInt(meta.uid, p); dataServers[serverURL].PadintCount++; metadata[meta.uid].servers.Add(serverURL); toRemove.Add(meta); } foreach(PadIntMetadata meta in toRemove) { nonReplicatedPadInts.Remove(meta); } }