Skip to content

Commit

Permalink
Generate MSTeams AdaptiveCard
Browse files Browse the repository at this point in the history
  • Loading branch information
MuhammadUsama-afk-equinor committed Nov 29, 2023
1 parent 8a237e8 commit 7553107
Showing 1 changed file with 45 additions and 14 deletions.
59 changes: 45 additions & 14 deletions backend/api/EventHandlers/InspectionFindingEventHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,19 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)

logger.LogInformation("Found {count} inspection findings in the last {interval}.", inspectionFindings.Count, _timeSpan);

await GenerateAdaptiveCard(inspectionFindings);
}
catch (OperationCanceledException)
{
throw;
if (inspectionFindings.Count > 0)
{
var findingsList = await GenerateFindingsList(inspectionFindings);

string messageString = GenerateReportFromFindingsReportsList(findingsList);

string adaptiveCardJson = GenerateAdaptiveCard(messageString);
}
}
catch (OperationCanceledException) { throw; }
}
}
private async Task<List<Finding>> GenerateAdaptiveCard(List<InspectionFinding> inspectionFindings)
private async Task<List<Finding>> GenerateFindingsList(List<InspectionFinding> inspectionFindings)
{
var findingsList = new List<Finding>();

Expand All @@ -60,16 +64,12 @@ private async Task<List<Finding>> GenerateAdaptiveCard(List<InspectionFinding> i
}
else
{
logger.LogInformation("Null condiiton for TagId or PlantName or Area name failed");
logger.LogInformation("Failed to generate a finding since TagId in missionTask or Area in MissionRun is null");
continue;
}
}
catch
{
throw;
}
catch { throw; }
}

return findingsList;
}

Expand All @@ -79,18 +79,49 @@ public static string GenerateReportFromFindingsReportsList(List<Finding> finding
reportBuilder.Append(Environment.NewLine);
string dateFormat = "dd/MM/yyyy HH:mm:ss";
var formatProvider = CultureInfo.InvariantCulture;

foreach (var finding in findingsReports)
{
_ = reportBuilder.AppendLine(
formatProvider,
$"- TagId: {finding.TagId}, PlantName: {finding.PlantName}, AreaName: {finding.AreaName}, Description: {finding.FindingDescription}, Timestamp: {finding.Timestamp.ToString(dateFormat, formatProvider)}, RobotName: {finding.RobotName}"
);
}

return reportBuilder.ToString();
}

public static string GenerateAdaptiveCard(string messageContent)
{
string adaptiveCardJson = $@"{{
""type"": ""message"",
""attachments"": [
{{
""contentType"": ""application/vnd.microsoft.card.adaptive"",
""content"": {{
""type"": ""AdaptiveCard"",
""body"": [
{{
""type"": ""Container"",
""height"": ""stretch"",
""items"": [
{{
""type"": ""TextBlock"",
""text"": ""{messageContent}"",
""wrap"": true
}}
]
}}
],
""$schema"": ""http://adaptivecards.io/schemas/adaptive-card.json"",
""version"": ""1.0"",
""msteams"": {{
""displayStyle"": ""full""
}}
}}
}}
]
}}";
return adaptiveCardJson;
}
}

public class Finding(string tagId, string plantName, string areaName, string findingDescription, DateTime timestamp, string robotName)
Expand Down

0 comments on commit 7553107

Please sign in to comment.