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);
                }
            }
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }