private async Task CreateAndNotify(IEnumerable <RekeyingTask> tasks) { if (!tasks.Any()) { return; } await Task.WhenAll(tasks.Select(t => RekeyingTasks.CreateAsync(t))); foreach (var task in tasks) { var secret = await ManagedSecrets.GetAsync(task.ManagedSecretId); if (task.ConfirmationType == TaskConfirmationStrategies.AdminCachesSignOff || task.ConfirmationType == TaskConfirmationStrategies.AdminSignsOffJustInTime) { await NotificationProvider.DispatchNotification_AdminApprovalRequiredTaskCreated( secret.AdminEmails.ToArray(), task); } else if (task.ConfirmationType == TaskConfirmationStrategies.AutomaticRekeyingAsNeeded || task.ConfirmationType == TaskConfirmationStrategies.AutomaticRekeyingScheduled) { await NotificationProvider.DispatchNotification_AutoRekeyingTaskCreated( secret.AdminEmails.ToArray(), task); } } }