public void Update()
{
var maxMessageLength = Width - 4;
renderedMessage = Message;
renderedMessage = renderedMessage.Replace("{%}", Math.Round(Progress * 100, 1) + " %");
if (renderedMessage.Length > maxMessageLength)
{
renderedMessage = renderedMessage.Substring(0, maxMessageLength - 3) + "...";
}
while (renderedMessage.Length < maxMessageLength)
{
renderedMessage += " ";
}
if (indeterminateHighlightIndex < 0)
{
int toHighlight = (int)Math.Round(Progress * renderedMessage.Length);
renderedMessage = renderedMessage.HighlightSubstring(0, toHighlight, MessageFillColor, FillColor);
}
else
{
renderedMessage = renderedMessage.HighlightSubstring(indeterminateHighlightIndex, 1, MessageFillColor, FillColor);
}
messageStart.Restore();
Console.Write(renderedMessage);
wiper.MoveCursorToLineAfterBottom();
}