Ejemplo n.º 1
0
        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);
                }
            }
        }