public async Task <ActionResult> CompleteOperation(Guid subscriptionId) { string activatedBy = this.HttpContext.User.Identity.Name; AADAuthHelper.VerifyUserAccess(this.HttpContext, _logger, true); _logger.LogInformation($"Complete current operation for subscription {subscriptionId}. Operated by {activatedBy}."); if (!await _subscriptionService.ExistsAsync(subscriptionId)) { throw new LunaNotFoundUserException($"The specified subscription {subscriptionId} doesn't exist or you don't have permission to access it."); } Subscription sub = await _subscriptionService.GetAsync(subscriptionId); if (!ProvisioningHelper.IsErrorOrWarningProvisioningState(sub.ProvisioningStatus)) { throw new LunaConflictUserException($"Can not complete operation manually when provisioning in {sub.ProvisioningStatus} state."); } if (string.IsNullOrEmpty(activatedBy)) { throw new LunaBadRequestUserException("Need to specify the operation who is activating this subscription.", UserErrorCode.InvalidParameter); } return(Ok(await _provisioningService.UpdateOperationCompletedAsync(subscriptionId, activatedBy))); }
/// <summary> /// Get warnings from subscription /// </summary> /// <param name="subscriptionId">Subscription id. Get all warnings if not specified</param> /// <returns>warnings</returns> public async Task <List <SubscriptionWarning> > GetWarnings(Guid?subscriptionId = null) { var subList = _context.Subscriptions.ToList().Where(s => ProvisioningHelper.IsErrorOrWarningProvisioningState(s.ProvisioningStatus) && (subscriptionId == null || s.SubscriptionId == subscriptionId)).ToList(); List <SubscriptionWarning> warnings = new List <SubscriptionWarning>(); foreach (var sub in subList) { warnings.Add(new SubscriptionWarning(sub.SubscriptionId, string.Format("Subscription in error state {0} since {1}.", sub.ProvisioningStatus, sub.LastUpdatedTime), string.Format("Last exception: {0}.", sub.LastException))); } return(warnings); }