/** * Generate email payload for given alarm and email action. * Creates subject, recipients, and body based on action and alarm */ private string GeneratePayload(EmailAction emailAction, AsaAlarmApiModel alarm) { string emailTemplate = File.ReadAllText(this.servicesConfig.TemplateFolder + EMAIL_TEMPLATE_FILE_NAME); string alarmDate = DateTimeOffset.FromUnixTimeMilliseconds(alarm.DateCreated).ToString(DATE_FORMAT_STRING); emailTemplate = emailTemplate.Replace("${subject}", emailAction.GetSubject()); emailTemplate = emailTemplate.Replace( "${alarmDate}", DateTimeOffset.FromUnixTimeMilliseconds(alarm.DateCreated).ToString(DATE_FORMAT_STRING)); emailTemplate = emailTemplate.Replace("${ruleId}", alarm.RuleId); emailTemplate = emailTemplate.Replace("${ruleDescription}", alarm.RuleDescription); emailTemplate = emailTemplate.Replace("${ruleSeverity}", alarm.RuleSeverity); emailTemplate = emailTemplate.Replace("${deviceId}", alarm.DeviceId); emailTemplate = emailTemplate.Replace("${notes}", emailAction.GetNotes()); emailTemplate = emailTemplate.Replace("${alarmUrl}", this.GenerateRuleDetailUrl(alarm.RuleId)); EmailActionPayload payload = new EmailActionPayload { Recipients = emailAction.GetRecipients(), Subject = emailAction.GetSubject(), Body = emailTemplate }; return(JsonConvert.SerializeObject(payload)); }