public async Task <IActionResult> ProcessPayment(PaymentRequestDTO paymentRequest) { try { if (ModelState.IsValid) { //in this the processing the payment take place var paymentState = await _paymentRequestService.ProcessingPayment(paymentRequest); var paymentResponse = new PaymentResponseDTO() { IsProcessed = paymentState.PaymentState == PaymentStateEnum.Processed , PaymentState = paymentState }; //this will check if the payment is processed or not if (!paymentResponse.IsProcessed) { return(StatusCode(500, new { error = "Payment could not be processed" })); } return(Ok(paymentResponse)); } else { return(BadRequest(ModelState)); } } catch (Exception ex) { _logger.LogError(ex, ex.Message); return(StatusCode(500)); } }