コード例 #1
0
        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."));
        }