private static BuildMessage CreateMessage()

in TeamCity.CSharpInteractive/BuildContext/BuildContext.cs [187:226]


    private static BuildMessage CreateMessage(IServiceMessage message, BuildMessageState state, string text)
    {
        var buildMessage = new BuildMessage(
            state,
            default,
            text,
            message.GetValue("errorDetails") ?? string.Empty,
            message.GetValue("code") ?? string.Empty,
            message.GetValue("file") ?? string.Empty,
            message.GetValue("subcategory") ?? string.Empty,
            message.GetValue("projectFile") ?? string.Empty,
            message.GetValue("senderName") ?? string.Empty);
        
        if (int.TryParse(message.GetValue("columnNumber"), out var columnNumber))
        {
            buildMessage = buildMessage.WithColumnNumber(columnNumber);
        }
        
        if (int.TryParse(message.GetValue("endColumnNumber"), out var endColumnNumber))
        {
            buildMessage = buildMessage.WithEndColumnNumber(endColumnNumber);
        }
        
        if (int.TryParse(message.GetValue("lineNumber"), out var lineNumber))
        {
            buildMessage = buildMessage.WithLineNumber(lineNumber);
        }
        
        if (int.TryParse(message.GetValue("endLineNumber"), out var endLineNumber))
        {
            buildMessage = buildMessage.WithEndLineNumber(endLineNumber);
        }
        
        if (Enum.TryParse<DotNetMessageImportance>(message.GetValue("importance"), out var importance))
        {
            buildMessage = buildMessage.WithImportance(importance);
        }

        return buildMessage;
    }