private ConflictContext(ConflictContext context, Conflict subconflict) { r_conflicts = new List <Conflict>(context.r_conflicts) { subconflict }; }
public override Difference Resolve( ConflictContext context, OperationTypeConflictResolver operationTypeConflictResolver, ValueConflictResolver valueConflictResolver) { foreach (var subconflict in new List<Conflict>(r_subconflicts)) // Iterate on a copy of the list to be able to modify the original list in the loop { var resolvedDifference = subconflict.Resolve(context.CreateSubcontext(this), operationTypeConflictResolver, valueConflictResolver); if (resolvedDifference != null) { r_subconflicts.Remove(subconflict); r_acceptedSubdifferences.Add(resolvedDifference); } } if (r_subconflicts.Count == 0) { return new NodeDifference( this.Identifier, r_operationOnParent, r_acceptedSubdifferences); } else { return null; } }
public override Difference Resolve( ConflictContext context, OperationTypeConflictResolver operationTypeConflictResolver, ValueConflictResolver valueConflictResolver) { foreach (var subconflict in new List <Conflict>(r_subconflicts)) // Iterate on a copy of the list to be able to modify the original list in the loop { var resolvedDifference = subconflict.Resolve(context.CreateSubcontext(this), operationTypeConflictResolver, valueConflictResolver); if (resolvedDifference != null) { r_subconflicts.Remove(subconflict); r_acceptedSubdifferences.Add(resolvedDifference); } } if (r_subconflicts.Count == 0) { return(new NodeDifference( this.Identifier, r_operationOnParent, r_acceptedSubdifferences)); } else { return(null); } }
public override Difference Resolve( ConflictContext context, OperationTypeConflictResolver operationTypeConflictResolver, ValueConflictResolver valueConflictResolver) { var resolvedValue = valueConflictResolver(context.CreateSubcontext(this), r_newValueInSourceBranch, r_newValueInDestinationBranch); return resolvedValue == null ? null : new ValueDifference(this.Identifier, this.OperationOnParent, r_oldValue, resolvedValue); }
public override Difference Resolve( ConflictContext context, OperationTypeConflictResolver operationTypeConflictResolver, ValueConflictResolver valueConflictResolver) { var resolvedValue = valueConflictResolver(context.CreateSubcontext(this), r_newValueInSourceBranch, r_newValueInDestinationBranch); return(resolvedValue == null ? null : new ValueDifference(this.Identifier, this.OperationOnParent, r_oldValue, resolvedValue)); }
private ConflictContext(ConflictContext context, Conflict subconflict) { r_conflicts = new List<Conflict>(context.r_conflicts) {subconflict}; }