public async Task <IActionResult> GetShippingCost(CostPackageRequest costPackageRequest) { var validationResult = await new CostPackageRequestValidator().ValidateAsync(costPackageRequest); if (!validationResult.IsValid) { return(new BadRequestObjectResult(new ApiResponseBase { Success = false, Message = validationResult.Errors.FirstOrDefault()?.ErrorMessage })); } var command = Mapper.Map <PackageCostQueryCommand>(costPackageRequest); var package = await CommandBus.SendCommandAsync <PackageCostQueryCommandResponse>(command); var costPackageResponse = package.MapTo <CostPackageResponse>(Mapper); if (Notifications.HasErrorsOrValidations) { costPackageResponse.Success = false; costPackageResponse.Message = Notifications.ToApiResponseValidations().FirstOrDefault()?.Message; } else if (package.PackageType == PackageType.Undefined) { costPackageResponse.Success = false; costPackageResponse.Message = ShippingMessages.UnableIdentifySize; } else { costPackageResponse.Success = true; costPackageResponse.Message = ShippingMessages.PackageSuccessfullyCalculated; } if (costPackageResponse.Success) { return(new OkObjectResult(costPackageResponse)); } return(new BadRequestObjectResult(new ApiResponseBase { Success = false, Message = ShippingMessages.UnableIdentifySize })); }
public async Task <IActionResult> Calculate([FromBody] CostPackageRequest costPackageRequest) { return(await _appService.GetShippingCost(costPackageRequest)); }