diff --git a/appsettings.json b/appsettings.json index 5187bb442..1bfc0ef6e 100644 --- a/appsettings.json +++ b/appsettings.json @@ -150,15 +150,7 @@ "StringManipulatorTool": { "Enabled": true, "MaxStringLength": 1000000, - "Manipulators": [ - { - "$type": "RegexStringManipulator", - "Enabled": true, - "Pattern": "[^( -~)\n\r\t]+", - "Replacement": "", - "Description": "Remove invalid characters from the end of the string" - } - ] + "Manipulators": [] }, "TfsUserMappingTool": { "Enabled": false, diff --git a/src/MigrationTools/Tools/StringManipulatorTool.cs b/src/MigrationTools/Tools/StringManipulatorTool.cs index 2cb9d5fb6..95e393688 100644 --- a/src/MigrationTools/Tools/StringManipulatorTool.cs +++ b/src/MigrationTools/Tools/StringManipulatorTool.cs @@ -34,9 +34,11 @@ public void ProcessorExecutionWithFieldItem(IProcessor processor, FieldItem fiel } if (fieldItem.FieldType == "String" && fieldItem.Value != null) { - if (HasManipulators()) + if (!HasManipulators()) { - foreach (var manipulator in Options.Manipulators) + AddDefaultManipulator(); + } + foreach (var manipulator in Options.Manipulators) { if (manipulator.Enabled) { @@ -49,7 +51,7 @@ public void ProcessorExecutionWithFieldItem(IProcessor processor, FieldItem fiel Log.LogDebug("{WorkItemProcessorEnricher}::ProcessorExecutionWithFieldItem::Disabled::{Description}", GetType().Name, manipulator.Description); } } - } + if (HasStringTooLong(fieldItem)) { fieldItem.Value = fieldItem.Value.ToString().Substring(0, Math.Min(fieldItem.Value.ToString().Length, Options.MaxStringLength)); @@ -58,6 +60,15 @@ public void ProcessorExecutionWithFieldItem(IProcessor processor, FieldItem fiel } + private void AddDefaultManipulator() + { + if (Options.Manipulators == null) + { + Options.Manipulators = new List(); + } + Options.Manipulators.Add(new RegexStringManipulator() { Enabled = true, Description = "Default: Removes invalid chars!", Pattern = "[^( -~)\n\r\t]+", Replacement = "" }); + } + private bool HasStringTooLong(FieldItem fieldItem) { return fieldItem.Value.ToString().Length > 0 && fieldItem.Value.ToString().Length > Options.MaxStringLength;