Search code examples
c#blueprismrpa

Blueprism - Highlighting Collection Column In Body Of Email


I have a job which passes a collection into the body of an email. I want to highlight the first column. Currently my code is converting the first row. How can I change this?

System.Text.StringBuilder sb = new System.Text.StringBuilder);
if(InData.Rows.Count > 0)
{
sb.Append("Hi There,<br><br>");
sb.Append("Please find the below mentioned Information. <br><br>");
sb.Append("<table style='border:1px solid black; border-collapse: collapse;'>");
sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
foreach (System.Data.DataColumn dc in InData.Columns)
{
   sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
   sb.Append(dc.ColumnName);
   sb.Append("</th>");
}
sb.Append("</tr>");

int rowNumber = 1;
foreach (System.Data.DataRow dr in InData.Rows)
{
    if (rowNumber == 1)
    {
   sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px; background-color:yellow;'>");
    }
    else
    {
        sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    }

  foreach (System.Data.DataColumn dc in InData.Columns)
   {
      sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
      sb.Append(dr[dc.ColumnName].ToString());
      sb.Append("</td>");
   }
   sb.Append("</tr>");
   rowNumber ++;
}
sb.Append("</table><br><br>");
sb.Append("Regards,<br>");
sb.Append("Team QueryBot");
}
outEmailHtmlTable = sb.ToString();

Solution

  • The background color is highlighted for the row. Ideally it should be for the column. In the below code I had removed background-color:yellow; for the row and added it for the column which will highlighted for the first column of each row.

    System.Text.StringBuilder sb = new System.Text.StringBuilder;
    if(InData.Rows.Count > 0)
    {
    sb.Append("Hi There,<br><br>");
    sb.Append("Please find the below mentioned Information. <br><br>");
    sb.Append("<table style='border:1px solid black; border-collapse: collapse;'>");
    
    sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    foreach (System.Data.DataColumn dc in InData.Columns)
    {
       sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
       sb.Append(dc.ColumnName);
       sb.Append("</th>");
    }
    sb.Append("</tr>");
    
    int rowNumber = 1;
    foreach (System.Data.DataRow dr in InData.Rows)
    {
    
       sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    
    int colNumber=1;
    
      foreach (System.Data.DataColumn dc in InData.Columns)
       {
    
    if(colNumber==1)
    {
              sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>");
    }
    else
    {
              sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    
    }
              sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
              sb.Append(dr[dc.ColumnName].ToString());
              sb.Append("</td>");
    colNumber++;
           }
           sb.Append("</tr>");
           rowNumber ++;
        }
        sb.Append("</table><br><br>");
        sb.Append("Regards,<br>");
        sb.Append("Team QueryBot");
        }
        outEmailHtmlTable = sb.ToString();
    

    Hope this will solve your problem.

    Below is the piece of code which I had used to verify for your reference.

     private void button1_Click(object sender, EventArgs e)
        {
    
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
    
            sb.Append("Hi There,<br><br>");
            sb.Append("Please find the below mentioned Information. <br><br>");
            sb.Append("<table style='border:1px solid black; border-collapse: collapse;'>");
            sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
    
            sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
            sb.Append("ID");
            sb.Append("</th>");
            sb.Append("<th style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
            sb.Append("Name");
            sb.Append("</th>");
    
            sb.Append("</tr>");
    
            int rowNumber = 1;
            foreach (Employee dr in Employee.GetEmpList())
            {
                if (rowNumber == 1)
                {
                    sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
                }
                else
                {
                    sb.Append("<tr style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
                }
                int col = 1;
                if (col == 1)
                {
                    sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>");
    
                    sb.Append(dr.Id);
                    sb.Append("</td>");
                }
                col++;
    
                sb.Append("<td style='border:1px solid black; border-collapse: collapse; padding:2px;'>");
                sb.Append(dr.Name);
                sb.Append("</td>");
                sb.Append("</tr>");
                rowNumber++;
            }
            sb.Append("</table><br><br>");
            sb.Append("Regards,<br>");
            sb.Append("Team QueryBot");
            string stoutEmailHtmlTable = sb.ToString();
        }
    }
    
    class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; }
    
        public static List<Employee> GetEmpList()
        {
            List<Employee> emp = new List<Employee>();
            emp.Add(new Employee() { Id = 1, Name = "Venkatesh" });
            emp.Add(new Employee() { Id = 2, Name = "Ramesh" });
            return emp;
        }
    }
    

    Hi There,<br><br>Please find the below mentioned Information. <br><br><table style='border:1px solid black; border-collapse: collapse;'><tr style='border:1px solid black; border-collapse: collapse; padding:2px;'><th style='border:1px solid black; border-collapse: collapse; padding:2px;'>ID</th><th style='border:1px solid black; border-collapse: collapse; padding:2px;'>Name</th></tr><tr style='border:1px solid black; border-collapse: collapse; padding:2px;'><td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>1</td><td style='border:1px solid black; border-collapse: collapse; padding:2px;'>Venkatesh</td></tr><tr style='border:1px solid black; border-collapse: collapse; padding:2px;'><td style='border:1px solid black; border-collapse: collapse; padding:2px;background-color:yellow;'>2</td><td style='border:1px solid black; border-collapse: collapse; padding:2px;'>Ramesh</td></tr></table><br><br>Regards,<br>Team QueryBot

    Snap shot of my output in html