chore(sonar): bulk-fix mechanical CA/IDE analyzer warnings

Applied via `dotnet format analyzers --diagnostics IDE0028 CA1825 CA1834
CA1845 CA1847 CA1860 CA1866 CA1853 CA1830 CA1846 CA1806 CA1869 CA2249
--severity info`. 19 files touched, all mechanical syntactic rewrites:

- CA1847: string.Contains("x") -> string.Contains('x')
- CA2249: s.IndexOf(c) == -1 -> !s.Contains(c)
- CA1830: sb.Append(sb.ToString()) -> sb.Append(sb)
- CA1834: StringBuilder.Append("x") -> Append('x')
- CA1825, CA1860, CA1866, CA1853, IDE0028, CA1845: corresponding fixers

Three rules in the batch had no batch fixer available (CA1846 ×4,
CA1806 ×1, CA1869 ×1) and stay open for separate manual handling.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Thom Lamb
2026-05-26 15:38:54 -05:00
co-authored by Claude Opus 4.7
parent 3010019dc5
commit 2c2a8b1193
19 changed files with 39 additions and 39 deletions
@@ -55,7 +55,7 @@ public class ProcedureBreakdown : SqlServerProcedureBreakdown
sb.Append("CALL ");
sb.Append(ProcedureName.Clause);
sb.Append("(");
sb.Append('(');
if (IsUsingParameters)
{
@@ -68,7 +68,7 @@ public class ProcedureBreakdown : SqlServerProcedureBreakdown
sb.Append(string.Join(", ", paramList));
}
sb.Append(")");
sb.Append(')');
return sb.ToString();
}
@@ -141,7 +141,7 @@ public class QueryBreakdown : SqlServerQueryBreakdown
if (parameterName.StartsWith('@'))
{
return ":" + parameterName.Substring(1);
return string.Concat(":", parameterName.AsSpan(1));
}
// Add : prefix
@@ -159,7 +159,7 @@ public class QueryBreakdown : SqlServerQueryBreakdown
if (paramName.StartsWith(':'))
{
// Add @param version
var atParam = "@" + paramName.Substring(1);
var atParam = string.Concat("@", paramName.AsSpan(1));
if (!Parameters.ContainsKey(atParam))
{
Parameters[atParam] = Parameters[paramName];
@@ -168,7 +168,7 @@ public class QueryBreakdown : SqlServerQueryBreakdown
else if (paramName.StartsWith('@'))
{
// Add :param version
var colonParam = ":" + paramName.Substring(1);
var colonParam = string.Concat(":", paramName.AsSpan(1));
if (!Parameters.ContainsKey(colonParam))
{
Parameters[colonParam] = Parameters[paramName];
@@ -539,7 +539,7 @@ public class QueryBreakdown : SqlServerQueryBreakdown
if (i > 0)
{
sb.Append(",");
sb.Append(',');
sb.AppendLine();
}
@@ -67,7 +67,7 @@ public class QueryBreakdownCollection : SqlServer.QueryBreakdownCollectionBase<Q
if (!trimmed.EndsWith(';'))
{
sb.Append(";");
sb.Append(';');
}
// Add spacing between statements
@@ -111,7 +111,7 @@ public class QueryBreakdownCollection : SqlServer.QueryBreakdownCollectionBase<Q
return true;
}
var specificPattern = stageName.Contains("~")
var specificPattern = stageName.Contains('~')
? $@"@~/{System.Text.RegularExpressions.Regex.Escape(stageName.TrimStart('@', '~', '/'))}/"
: $@"@{System.Text.RegularExpressions.Regex.Escape(stageName.TrimStart('@'))}/";
@@ -289,7 +289,7 @@ public class QueryBreakdownCollection : SqlServer.QueryBreakdownCollectionBase<Q
/// </summary>
private static bool UsesStageReference(QueryBreakdown query)
{
return query.GetSql().Contains("@") &&
return query.GetSql().Contains('@') &&
(query.GetSql().Contains("FROM @") || query.GetSql().Contains(" @"));
}