public async Task <IActionResult> SaveCalculation(string specificationId, string calculationId, [FromBody] CalculationUpdateViewModel vm) { Guard.ArgumentNotNull(specificationId, nameof(specificationId)); Guard.ArgumentNotNull(calculationId, nameof(calculationId)); Guard.ArgumentNotNull(vm, nameof(vm)); if (!await _authorizationHelper.DoesUserHavePermission(User, specificationId, SpecificationActionTypes.CanEditCalculations)) { return(new ForbidResult()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } CalculationUpdateModel update = _mapper.Map <CalculationUpdateModel>(vm); ApiResponse <Calculation> response = await _calcClient.UpdateCalculation(calculationId, update); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return(Ok(response.Content)); } else { throw new InvalidOperationException($"An error occurred while saving calculation. Status code={response.StatusCode}"); } }
public async Task <IActionResult> OnPostAsync(string specificationId, string calculationId) { Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId)); Specification specification = await GetSpecification(specificationId); IsAuthorizedToEdit = await _authorizationHelper.DoesUserHavePermission(User, specification, SpecificationActionTypes.CanEditSpecification); if (!IsAuthorizedToEdit) { return(new ForbidResult()); } if (!ModelState.IsValid) { return(await PopulateForm(specification, calculationId)); } CalculationUpdateModel updateModel = _mapper.Map <CalculationUpdateModel>(EditCalculationViewModel); ValidatedApiResponse <Calculation> editCalculationResponse = await _specsClient.UpdateCalculation(specificationId, calculationId, updateModel); if (editCalculationResponse.StatusCode == HttpStatusCode.OK) { Calculation editedCalculation = editCalculationResponse.Content; return(Redirect($"/specs/policies/{specificationId}?operationId={editedCalculation.Id}&operationType=CalculationUpdated")); } else if (editCalculationResponse.StatusCode == HttpStatusCode.BadRequest) { editCalculationResponse.AddValidationResultErrors(ModelState); await PopulateForm(specification, calculationId); return(Page()); } else { throw new InvalidOperationException($"Unable to edit calculation specification. Status Code = {editCalculationResponse.StatusCode}"); } }
public Task <ApiResponse <Calculation> > UpdateCalculation(string calculationId, CalculationUpdateModel calculation) { Guard.IsNullOrWhiteSpace(calculationId, nameof(calculationId)); Guard.ArgumentNotNull(calculation, nameof(calculation)); return(PostAsync <Calculation, CalculationUpdateModel>($"calculation-save-version?calculationId={calculationId}", calculation)); }
public Task <ValidatedApiResponse <Calculation> > UpdateCalculation(string specificationId, string calculationId, CalculationUpdateModel calculation) { Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId)); Guard.IsNullOrWhiteSpace(calculationId, nameof(calculationId)); Guard.ArgumentNotNull(calculation, nameof(calculation)); return(ValidatedPutAsync <Calculation, CalculationUpdateModel>($"calculations?specificationId={specificationId}&calculationId={calculationId}", calculation)); }