public async Task <ActionResult> DeleteData(Guid subscriptionId)
 {
     AADAuthHelper.VerifyUserAccess(this.HttpContext, _logger, true);
     _logger.LogInformation($"Delete data (purge) from subscription {subscriptionId}.");
     return(Ok(await _subscriptionService.DeleteDataAsync(subscriptionId)));
 }
Exemplo n.º 2
0
        public async Task <ActionResult> ProcessActiveProvisions()
        {
            List <SubscriptionProvision> provisionList = await _provisioningService.GetInProgressProvisionsAsync();

            foreach (var provision in provisionList)
            {
                try
                {
                    _logger.LogInformation($"{ provision.SubscriptionId} is in {nameof(provision.ProvisioningStatus)} state");

                    switch (provision.ProvisioningStatus)
                    {
                    case nameof(ProvisioningState.ProvisioningPending):
                        await _provisioningService.CreateResourceGroupAsync(provision.SubscriptionId);

                        break;

                    case nameof(ProvisioningState.DeployResourceGroupRunning):
                        await _provisioningService.CheckResourceGroupDeploymentStatusAsync(provision.SubscriptionId);

                        break;

                    case nameof(ProvisioningState.ArmTemplatePending):
                        await _provisioningService.DeployArmTemplateAsync(provision.SubscriptionId);

                        break;

                    case nameof(ProvisioningState.ArmTemplateRunning):
                        await _provisioningService.CheckArmDeploymentStatusAsync(provision.SubscriptionId);

                        break;

                    case nameof(ProvisioningState.WebhookPending):
                        await _provisioningService.ExecuteWebhookAsync(provision.SubscriptionId);

                        break;

                    case nameof(ProvisioningState.NotificationPending):
                        if (provision.ProvisioningType.Equals(nameof(ProvisioningType.Subscribe)))
                        {
                            _logger.LogInformation($"Activate subscription {provision.SubscriptionId}");
                            await _provisioningService.ActivateSubscriptionAsync(provision.SubscriptionId);
                        }
                        else
                        {
                            _logger.LogInformation($"Update operation complete for {provision.SubscriptionId}");
                            await _provisioningService.UpdateOperationCompletedAsync(provision.SubscriptionId);
                        }
                        break;

                    default:
                        if (provision.SubscriptionStatus.Equals(nameof(FulfillmentState.Unsubscribed)))
                        {
                            _logger.LogInformation($"Delete data for {provision.SubscriptionId}");
                            await _subscriptionService.DeleteDataAsync(provision.SubscriptionId);
                        }
                        break;
                    }
                }
                catch (Exception e)
                {
                    _logger.LogError(e.Message);
                }
            }

            return(Ok());
        }