public VectorClockSyncResult <T> ToModel() { if (Solution != null) { return(VectorClockSyncResult <T> .Successfull(CurrentNode.ToModel(), Solution.ToModel())); } return(VectorClockSyncResult <T> .Conflictual(CurrentNode.ToModel(), Conflict.ToModel())); }
public VectorClockSyncResult <T> ResolveConflict(VectorClockSyncResult <T> conflict) { if (conflict.IsSuccessfull) { throw new InvalidOperationException($"{nameof(conflict)} is already resolved"); } return(conflict.ResolveConflict(mediator.Invoke(conflict.Conflict.NodeA.Payload, conflict.Conflict.NodeB.Payload))); }
public static VectorClockSyncResultDto <T> FromModel(VectorClockSyncResult <T> model) { return(new VectorClockSyncResultDto <T> { Solution = VectorClockNodeDto <T> .FromModel(model.Solution), Conflict = VectorClockConflictDto <T> .FromModel(model.Conflict), CurrentNode = VectorClockNodeDto <T> .FromModel(model.CurrentNode), }); }
public VectorClockSyncResult <T> ResolveConflict(VectorClockSyncResult <T> conflict) => conflict;