diff --git a/source/Diol/src/Diol.Share/Services/SqlQueryService.cs b/source/Diol/src/Diol.Share/Services/SqlQueryService.cs index c6e5aac..9aceaaf 100644 --- a/source/Diol/src/Diol.Share/Services/SqlQueryService.cs +++ b/source/Diol/src/Diol.Share/Services/SqlQueryService.cs @@ -21,72 +21,32 @@ public class SqlQueryService /// /// The SELECT query. /// The table name. - public static string ExtractTableNameFromSelectQuery(string sqlQuery) - { - string pattern = @"FROM\s+\[?(\w+)\]?"; - Match match = Regex.Match(sqlQuery, pattern, RegexOptions.IgnoreCase); - - if (match.Success) - { - return match.Groups[1].Value; - } - - return string.Empty; - } + public static string ExtractTableNameFromSelectQuery(string sqlQuery) => + ExtractFromQuery(sqlQuery, @"FROM\s+\[?(\w+)\]?"); /// /// Extracts the table name from an INSERT query. /// /// The INSERT query. /// The table name. - public static string ExtractTableNameFromInsertQuery(string sqlQuery) - { - string pattern = @"INTO\s+\[?(\w+)\]?"; - Match match = Regex.Match(sqlQuery, pattern, RegexOptions.IgnoreCase); - - if (match.Success) - { - return match.Groups[1].Value; - } - - return string.Empty; - } + public static string ExtractTableNameFromInsertQuery(string sqlQuery) => + ExtractFromQuery(sqlQuery, @"INTO\s+\[?(\w+)\]?"); /// /// Extracts the table name from an UPDATE query. /// /// The UPDATE query. /// The table name. - public static string ExtractTableNameFromUpdateQuery(string sqlQuery) - { - string pattern = @"UPDATE\s+\[?(\w+)\]?"; - Match match = Regex.Match(sqlQuery, pattern, RegexOptions.IgnoreCase); - - if (match.Success) - { - return match.Groups[1].Value; - } - - return string.Empty; - } + public static string ExtractTableNameFromUpdateQuery(string sqlQuery) => + ExtractFromQuery(sqlQuery, @"UPDATE\s+\[?(\w+)\]?"); /// /// Extracts the table name from a DELETE query. /// /// The DELETE query. /// The table name. - public static string ExtractTableNameFromDeleteQuery(string sqlQuery) - { - string pattern = @"FROM\s+\[?(\w+)\]?"; - Match match = Regex.Match(sqlQuery, pattern, RegexOptions.IgnoreCase); - - if (match.Success) - { - return match.Groups[1].Value; - } - - return string.Empty; - } + public static string ExtractTableNameFromDeleteQuery(string sqlQuery) => + ExtractFromQuery(sqlQuery, @"FROM\s+\[?(\w+)\]?"); /// /// Extracts the operation name from a SQL query. @@ -117,5 +77,23 @@ public static bool IsTransaction(string sqlQuery) { return sqlQuery.Contains("IMPLICIT_TRANSACTIONS"); } + + /// + /// Extracts a value from a SQL query base on pattern. + /// + /// The query. + /// Regex pattern. + /// + private static string ExtractFromQuery(string sqlQuery, string pattern) + { + Match match = Regex.Match(sqlQuery, pattern, RegexOptions.IgnoreCase); + + if (match.Success) + { + return match.Groups[1].Value; + } + + return string.Empty; + } } }