diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemTypeValidatorTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemTypeValidatorTool.cs index 28171013c..090f3f280 100644 --- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemTypeValidatorTool.cs +++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsWorkItemTypeValidatorTool.cs @@ -112,7 +112,7 @@ private bool ValidateWorkItemTypeFields(WorkItemType sourceWit, WorkItemType tar } else { - ValidateField(sourceField, targetFields[targetFieldName], targetWit.Name); + result &= ValidateField(sourceField, targetFields[targetFieldName], targetWit.Name); } } else @@ -135,7 +135,7 @@ private bool ValidateWorkItemTypeFields(WorkItemType sourceWit, WorkItemType tar return result; } - private void ValidateField(FieldDefinition sourceField, FieldDefinition targetField, string targetWitName) + private bool ValidateField(FieldDefinition sourceField, FieldDefinition targetField, string targetWitName) { // If target field is in 'FixedTargetFields' list, it means, that user resolved this filed somehow. // For example by value mapping. So any discrepancies found will be logged just as information. @@ -156,6 +156,7 @@ private void ValidateField(FieldDefinition sourceField, FieldDefinition targetFi + $" because it is listed in '{nameof(Options.FixedTargetFields)}'.", targetField.ReferenceName, targetWitName, sourceField.ReferenceName); } + return (logLevel == LogLevel.Information) || isValid; } private bool ValidateFieldType(FieldDefinition sourceField, FieldDefinition targetField, LogLevel logLevel)