public async Task <IActionResult> CreateCalculation(string specificationId, string calculationId, [FromBody] CreateAdditionalCalculationViewModel vm) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await _authorizationHelper.DoesUserHavePermission(User, specificationId, SpecificationActionTypes.CanEditCalculations)) { return(new ForbidResult()); } CalculationCreateModel createCalculation = _mapper.Map <CalculationCreateModel>(vm); createCalculation.SpecificationId = specificationId; createCalculation.Id = calculationId; createCalculation.Name = vm.CalculationName; createCalculation.ValueType = vm.CalculationType; ValidatedApiResponse <Calculation> response = await _calcClient.CreateCalculation(specificationId, createCalculation); if (response.IsBadRequest(out BadRequestObjectResult badRequest)) { return(badRequest); } if (response.StatusCode == HttpStatusCode.OK) { return(Ok(response.Content)); } return(BadRequest($"An error occurred while saving calculation. Please check and try again.")); }