Imports System.Runtime.CompilerServices

Public Module StringEx
    ''' <summary>
    ''' Truncates a string to the specified length if it exceeds that length.
    ''' </summary>
    ''' <param name="pString">The string</param>
    ''' <param name="pLength">The maximum string length</param>
    ''' <returns>The truncated string</returns>
    <Extension()>
    Public Function Truncate(pString As String, pLength As Integer) As String
        If String.IsNullOrEmpty(pString) Then Return pString
        Return pString.Substring(0, Math.Min(pLength, pString.Length))
    End Function

    ''' <summary>
    ''' Replaces single quotes in text for SQL Commands.
    ''' </summary>
    ''' <param name="pString">The string</param>
    ''' <returns>The escaped string.</returns>
    <Extension()>
    Public Function EscapeForSQL(pString As String) As String
        Return Utils.NotNull(pString, String.Empty).Replace("'", "''")
    End Function
End Module
