private void detectVCContentConflict() { foreach (var conflictedActionPairs in TargetChangeGroupService.DetectContentConflict()) { List <MigrationAction> resultMigrationActions; MigrationConflict contentConflict; if (conflictedActionPairs.Value.Action == WellKnownChangeActionId.Edit && conflictedActionPairs.Key.Action == WellKnownChangeActionId.Edit) { contentConflict = VCContentConflictType.CreateConflict(conflictedActionPairs.Key, conflictedActionPairs.Value); } else { contentConflict = VCNameSpaceContentConflictType.CreateConflict(conflictedActionPairs.Key); } var resolutionRslt = ConflictManager.TryResolveNewConflict(TargetSystemId, contentConflict, out resultMigrationActions); if (!resolutionRslt.Resolved) { int contentConflictId = contentConflict.InternalId; MigrationConflict chainOnConflictConflict = new MigrationConflict( new ChainOnConflictConflictType(), MigrationConflict.Status.Unresolved, ChainOnConflictConflictType.CreateConflictDetails(contentConflictId), ChainOnConflictConflictType.CreateScopeHint(contentConflictId)); chainOnConflictConflict.ConflictedChangeAction = conflictedActionPairs.Value; ConflictManager.BacklogUnresolvedConflict(TargetSystemId, chainOnConflictConflict, false); } } }
public static MigrationConflict CreateConflict(ChangeGroup changeGroup, string conflictDetails, string actionPath) { if (changeGroup == null) { throw new ArgumentNullException("changeGroup"); } if (string.IsNullOrEmpty(actionPath)) { throw new ArgumentNullException("actionPath"); } VCContentConflictType conflictInstance = new VCContentConflictType(); return(new VCContentConflict(conflictInstance, changeGroup, conflictDetails, actionPath)); }
public static MigrationConflict CreateConflict( MigrationAction conflictAction, MigrationAction otherSideConflictAction) { if (conflictAction == null) { throw new ArgumentNullException("conflictAction"); } if (otherSideConflictAction == null) { throw new ArgumentNullException("otherSideConflictAction"); } VCContentConflictType conflictInstance = new VCContentConflictType(); return(new VCContentConflict(conflictInstance, conflictAction, otherSideConflictAction)); }