public void SendAlarm(AlarmMessage message) { var payload = new Payload(); var msgText = $"{message.Level} level alarm raised by {message.Origin}"; var att = new Payload.Attachment(); att.Fallback = msgText; att.Color = GetAlarmColour(message.Level); att.Pretext = msgText; att.Title = $"{message.Message}"; att.TitleLink = ""; if (message.StorageID != null) { var field = new Payload.AttachmentField(); field.Title = $"StorageID"; field.Value = message.StorageID; field.Short = true; att.Fields.Add(field); } if (message.ExceptionMessage != null) { var field = new Payload.AttachmentField(); field.Title = $"Caught Exception"; field.Value = message.ExceptionMessage; field.Short = true; att.Fields.Add(field); } payload.Attachments.Add(att); payload.Username = message.Origin; PostMessage(payload); }
public void SendAggregatedAlarm(AggregatedMessage <AlarmMessage> aggregated) { var payload = new Payload(); payload.Username = aggregated.Message.Origin; var msgText = $"{aggregated.Message.Origin} caused an alarm flood."; var att = new Payload.Attachment(); att.Fallback = msgText; att.Color = GetAlarmColour(aggregated.Message.Level); att.Pretext = msgText; att.Title = $"{aggregated.Message.Message}"; att.TitleLink = ""; var amountField = new Payload.AttachmentField(); amountField.Title = $"Number of occurrences: {aggregated.AmountCounter}"; var firstField = new Payload.AttachmentField(); var lastField = new Payload.AttachmentField(); firstField.Title = "First occurrence"; firstField.Value = $"{aggregated.FirstOccurrence} UTC"; lastField.Title = "Last occurrence"; lastField.Value = $"{aggregated.LastOccurrence} UTC"; firstField.Short = lastField.Short = true; att.Fields.Add(amountField); att.Fields.Add(firstField); att.Fields.Add(lastField); payload.Attachments.Add(att); PostMessage(payload); }