private TicketArticle CreatePlatformArticle(AlertContext context)
        {
            string conditions = $"Window Size: {context.Condition.WindowSize} \n";

            foreach (var metric in context.Condition.AllOf)
            {
                conditions = $"Metric Name : {metric.MetricName} \n " +
                             $"Operator: {metric.Operator} \n " +
                             $"Threshold {metric.Threshold} \n " +
                             $"Time Aggregation: {metric.TimeAggregation}";
                conditions += "\n\n";
            }

            TicketArticle activityLogArticle = new TicketArticle
            {
                Subject = context.ConditionType,
                Body    = $"Conditions: \n" +
                          $"{conditions}" +
                          $"Window Start Time: {context.Condition.WindowStartTime.ToString(DateTimeFormat)} \n " +
                          $"Window End Time: {context.Condition.WindowEndTime.ToString(DateTimeFormat)}",
                Type = "note",
            };

            return(activityLogArticle);
        }
        private TicketArticle CreateActivityLogArticle(AlertContext context)
        {
            TicketArticle activityLogArticle = new TicketArticle
            {
                Subject = context.OperationName,
                Body    = $"Authorization: \n" +
                          $"Action: {context.Authorization.Action} \n" +
                          $"Scope: {context.Authorization.Scope} \n\n" +
                          $"Level: {context.Level} \n" +
                          $"Status: {context.Status} \n" +
                          $"Caller: {context.Caller} \n" +
                          $"Event Time: {context.EventTimestamp.ToString(DateTimeFormat)}",
                Type = "note"
            };

            return(activityLogArticle);
        }
        private TicketArticle CreateApplicationInsightsArticle(AlertContext context)
        {
            //string tables = FormatSearchResults(context.SearchResults);

            TicketArticle activityLogArticle = new TicketArticle
            {
                Subject = context.AlertType,
                Body    = $"Search Query {context.SearchQuery} \n " +
                          $"Link To Search Results: {context.LinkToSearchResults} \n" +
                          $"Search Interval Start Time Utc: {context.SearchIntervalStartTimeUtc.ToString(DateTimeFormat)} \n" +
                          $"Result Count {context.ResultCount} \n " +
                          $"Search Interval In Minutes: {context.SearchIntervalInMinutes} \n " +
                          $"Threshold: {context.Threshold} \n " +
                          $"Operator: {context.Operator} \n ",
                //$"Search Result: {tables}",
                Type = "note"
            };

            return(activityLogArticle);
        }
        private TicketArticle CreateResourceHealthArticle(AlertContext context)
        {
            TicketArticle activityLogArticle = new TicketArticle
            {
                Subject = context.EventSource,
                Body    = $"Level: {context.Level} \n " +
                          $"Operation Name: {context.OperationName} \n\n" +

                          $"Properties: \n" +
                          $"Title: {context.Properties.Title} \n" +
                          $"Current Health Status: {context.Properties.CurrentHealthStatus} \n" +
                          $"Previous Health Status: {context.Properties.PreviousHealthStatus} \n" +
                          $"Type: {context.Properties.Type} \n" +
                          $"Cause: {context.Properties.Cause} \n\n" +

                          $"Status: {context.Status} \n " +
                          $"Event Time: {context.EventTimestamp.ToString(DateTimeFormat)}",
                Type = "note",
                From = context.Caller
            };

            return(activityLogArticle);
        }
        private TicketArticle CreateServiceHealthArticle(AlertContext context)
        {
            TicketArticle activityLogArticle = new TicketArticle
            {
                Subject = context.EventSource,
                Body    = $"Level: {context.Level} \n " +
                          $"Operation Name: {context.OperationName} \n\n" +

                          $"Properties: \n" +
                          $"Title: {context.Properties.Title} \n" +
                          $"Service: {context.Properties.Service} \n" +
                          $"Region: {context.Properties.Region} \n" +
                          $"ImpactStartTime: {context.Properties.ImpactStartTime.ToString(DateTimeFormat)} \n" +
                          $"Stage: {context.Properties.Stage} \n\n" +

                          $"Status: {context.Status} \n " +
                          $"Event Time: {context.EventTimestamp.ToString(DateTimeFormat)}",
                Type = "note",
                From = context.Caller
            };

            return(activityLogArticle);
        }
        private TicketArticle CreateLogAnalyticsArticle(AlertContext context)
        {
            string affectedConfigurationItems = string.Empty;

            foreach (var affectedItem in context.AffectedConfigurationItems)
            {
                affectedConfigurationItems += $"{affectedItem} \n";
            }

            //string tables = FormatSearchResults(context.SearchResults);

            TicketArticle activityLogArticle = new TicketArticle
            {
                Subject = context.AlertType,
                Body    = $"Search Query: \n" +
                          $"{context.SearchQuery} \n\n " +

                          $"Link To Search Results: {context.LinkToSearchResults} \n\n" +

                          $"Affected Configuration Items: \n" +
                          $"{affectedConfigurationItems} \n" +

                          $"Search Interval Start Time Utc: {context.SearchIntervalStartTimeUtc.ToString(DateTimeFormat)} \n" +
                          $"Result Count {context.ResultCount} \n " +
                          $"Severity Description: {context.SeverityDescription} \n " +
                          $"Search Interval In Minutes: {context.SearchIntervalInMinutes} \n " +
                          $"Threshold: {context.Threshold} \n " +
                          $"Operator: {context.Operator} \n\n ",

                //$"Search Result: \n" +
                //$"{tables}",
                Type = "note"
            };

            return(activityLogArticle);
        }