public AlertingGroup() { Targets = new List <AlertTarget>(); ReportTargets = new List <ReportTarget>(); DynamoDb = new DynamoDb(); Sqs = new Sqs(); }
private async Task <List <Queue> > ExpandPatterns(SqsConfig sqs, string alertingGroupName) { var namedQueues = sqs.Queues .Where(t => string.IsNullOrWhiteSpace(t.Pattern)); NamesToPatterns(namedQueues); var queuesFromPatterns = new List <Queue>(); foreach (var queuePattern in sqs.Queues) { var matches = await GetPatternMatches(queuePattern, alertingGroupName); // filter out duplicates matches = matches .Where(match => queuesFromPatterns.All(t => t.Name != match.Name)) .ToList(); queuesFromPatterns.AddRange(matches); } return(queuesFromPatterns.ToList()); }