/// <summary>
/// Process a "find and replace"
/// </summary>
/// <param name="findAndReplace">A FindandReplace object</param>
/// <param name="substTemplates">A SubstTemplates object</param>
/// <param name="replaceSpecial">An MWB ReplaceSpecial object</param>
/// <param name="SkipIfNoChange">True if the article should be skipped if no changes are made</param>
public void PerformFindAndReplace(FindandReplace findAndReplace, SubstTemplates substTemplates,
ReplaceSpecial.ReplaceSpecial replaceSpecial, bool SkipIfNoChange)
{
if (!findAndReplace.HasReplacements && !replaceSpecial.HasRules && !substTemplates.HasSubstitutions)
{
return;
}
string strTemp = mArticleText.Replace("\r\n", "\n"),
testText = strTemp,
tmpEditSummary = "";
strTemp = findAndReplace.MultipleFindAndReplace(strTemp, mName, ref tmpEditSummary);
strTemp = replaceSpecial.ApplyRules(strTemp, mName);
strTemp = substTemplates.SubstituteTemplates(strTemp, mName);
if (testText == strTemp)
{
if (SkipIfNoChange)
{
Trace.AWBSkipped("No Find And Replace Changes");
}
else
{
return;
}
}
else
{
AWBChangeArticleText("Find and replace applied" + tmpEditSummary,
strTemp.Replace("\n", "\r\n"), true);
EditSummary += tmpEditSummary;
}
}