public async Task <IActionResult> OnPostAsync(string specificationId) { Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId)); Specification specification = await GetSpecification(specificationId); IsAuthorizedToEdit = await _authorizationHelper.DoesUserHavePermission(User, specification, SpecificationActionTypes.CanEditSpecification); if (!IsAuthorizedToEdit) { return(new ForbidResult()); } if (!string.IsNullOrWhiteSpace(CreateSubPolicyViewModel.Name)) { ApiResponse <Policy> existingPolicyResponse = await _specsClient.GetPolicyBySpecificationIdAndPolicyName(specificationId, CreateSubPolicyViewModel.Name); if (existingPolicyResponse.StatusCode != HttpStatusCode.NotFound) { this.ModelState.AddModelError($"{nameof(CreateSubPolicyViewModel)}.{nameof(CreateSubPolicyViewModel.Name)}", ValidationMessages.PolicyNameAlreadyExists); } } if (!ModelState.IsValid) { SpecificationName = specification.Name; SpecificationId = specificationId; FundingPeriodName = specification.FundingPeriod.Name; FundingPeriodId = specification.FundingPeriod.Id; PopulatePolicies(specification); return(Page()); } CreateSubPolicyModel policy = _mapper.Map <CreateSubPolicyModel>(CreateSubPolicyViewModel); policy.SpecificationId = specificationId; ApiResponse <Policy> newPolicyResponse = await _specsClient.CreatePolicy(policy); Policy newPolicy = newPolicyResponse.Content; return(Redirect($"/specs/policies/{specificationId}?operationType=SubpolicyCreated&operationId={newPolicy.Id}")); }
private async Task GeneratePolicies(SpecGeneratorConfiguration configuration, Specification specification) { int totalPolices = 1; if (configuration.NumberOfPolices.HasValue && configuration.NumberOfPolices.Value > 0) { totalPolices = configuration.NumberOfPolices.Value; } _logger.Information("Creating {totalPolices} policies for specification", totalPolices); for (int i = 0; i < totalPolices; i++) { int policyNumber = i + 1; CreatePolicyModel policyCreateModel = new CreatePolicyModel() { SpecificationId = specification.Id, Name = $"Policy {policyNumber}", Description = "SpecGenerator", }; await _specsClient.CreatePolicy(policyCreateModel); } }