GSF.ServiceProcess.ServiceHelper.CurtailMessageLength C# (CSharp) Method

CurtailMessageLength() private method

private CurtailMessageLength ( string message ) : string
message string
return string
        private string CurtailMessageLength(string message)
        {
            const int OneHalfK = (int)SI.Kilo / 2;

            // Don't curtail unless we are at least 512 characters over message length threshold,
            // seems superfluous in warning message to curtail just a handful of characters
            if (message.Length > m_maxStatusUpdatesLength + OneHalfK)
            {
                //                                                             1         2         3         4         5         6         7         8
                //                                                    12345678901234567890123456789012345678901234567890123456789012345678901234567890
                string warningMessage = $"\r\n...\r\n\r\nMaximum status message size exceeded - suppressed over {(message.Length - m_maxStatusUpdatesLength) / SI.Kilo:N2}K characters.\r\n\r\n...\r\n";
                int availableLength = (m_maxStatusUpdatesLength - warningMessage.Length) / 2;

                if (availableLength > 0 && message.Length > availableLength)
                {
                    string top = message.Substring(0, availableLength);
                    string bottom = message.Substring(message.Length - availableLength);
                    int newLineIndex;

                    newLineIndex = top.LastIndexOf("\r\n", StringComparison.Ordinal);

                    if (newLineIndex > 0)
                        top = top.Substring(0, newLineIndex).TrimEnd('\r', '\n');

                    newLineIndex = bottom.IndexOf("\r\n", StringComparison.Ordinal);

                    if (newLineIndex > -1 && newLineIndex + 1 < bottom.Length)
                        bottom = bottom.Substring(newLineIndex + 1).TrimStart('\r', '\n');

                    message = $"{top}{warningMessage}{bottom}";
                }
            }

            return message;
        }
ServiceHelper