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);
        }