public static void BuildStatusMessageCellPainting(DataGridViewCellPaintingEventArgs e, GitRevision revision, Color foreColor, Font rowFont, bool isSelected, RevisionGrid revisions) { if (revision.BuildStatus == null) { return; } var color = GetColor(); var text = (string)e.FormattedValue; revisions.DrawColumnText(e, text, rowFont, color); Color GetColor() { switch (revision.BuildStatus.Status) { case BuildInfo.BuildStatus.Success: return(isSelected ? Color.LightGreen : Color.DarkGreen); case BuildInfo.BuildStatus.Failure: return(isSelected ? Color.Red : Color.DarkRed); case BuildInfo.BuildStatus.InProgress: return(isSelected ? Color.LightBlue : Color.Blue); case BuildInfo.BuildStatus.Unstable: return(Color.OrangeRed); case BuildInfo.BuildStatus.Stopped: return(isSelected ? Color.LightGray : Color.Gray); case BuildInfo.BuildStatus.Unknown: return(foreColor); default: throw new InvalidOperationException("Unsupported build status enum value."); } } }