public async Task <IActionResult> Checkout([FromBody] CheckoutDto payload, Guid id) { ApiResponse <CheckoutDto> response = new ApiResponse <CheckoutDto>(); try { if (!response.Errors.Any()) { var userFromRepo = await _userSrv.GetUser(id); if (userFromRepo == null) { return(BadRequest(new { errorList = "Invalid User Id" })); } var currentUserId = User.FindFirst(ClaimTypes.NameIdentifier).Value; if (currentUserId != userFromRepo.Email) { return(BadRequest(new { errorList = "UnAuthorized" })); } (List <ValidationResult> Result, CheckoutDto Checkout)errorResult = await _checkoutServ.CheckoutBook(payload); if (errorResult.Result.Any()) { return(BadRequest(new { errorList = $"{errorResult.Result.FirstOrDefault().ErrorMessage}" })); } else { response.Code = ApiResponseCodes.OK; response.Description = $"Checkout successful."; } } } catch (Exception ex) { return(BadRequest(ex.Message)); } return(Ok(response)); }