private void ConvergentSubtract(CRDT.Application.Convergent.Counter.PN_CounterService sourceReplica, Guid replicaId, int value, List <CRDT.Application.Convergent.Counter.PN_CounterService> downstreamReplicas) { sourceReplica.LocalSubtract(value, replicaId); var(adds, subtracts) = sourceReplica.State; foreach (var downstreamReplica in downstreamReplicas) { downstreamReplica.Merge(adds, subtracts); } }
private Dictionary <Node, CRDT.Application.Convergent.Counter.PN_CounterService> CreateConvergentReplicas(List <Node> nodes) { var dictionary = new Dictionary <Node, CRDT.Application.Convergent.Counter.PN_CounterService>(); foreach (var node in nodes) { var repository = new PN_CounterRepository(); var service = new CRDT.Application.Convergent.Counter.PN_CounterService(repository); dictionary.Add(node, service); } return(dictionary); }