public async Task <IActionResult> Create(CarPurchaseViewModel viewModel) { var gateway = _braintreeService.GetGateway(); var car = await _appDbContext.Cars.Include("Category").FirstOrDefaultAsync(c => c.Id == viewModel.Id); if (car is not null) { var request = new TransactionRequest { Amount = Convert.ToDecimal(car.Price), PaymentMethodNonce = viewModel.Nonce, Options = new TransactionOptionsRequest { SubmitForSettlement = true, } }; Result <Transaction> result = await gateway.Transaction.SaleAsync(request); if (result.IsSuccess()) { return(View("Success")); } } return(View("Failrue")); }
public async Task <IActionResult> Purchase(int id) { var car = await _appDbContext.Cars.Include("Category").FirstOrDefaultAsync(c => c.Id == id); if (car is not null) { var gateway = _braintreeService.GetGateway(); var clientToken = await gateway.ClientToken.GenerateAsync(); var viewModel = new CarPurchaseViewModel { ImageUrl = car.ImageURL, Title = "Purchase", Category = car.Category, Price = car.Price, Nonce = string.Empty, }; ViewBag.ClientToken = clientToken; return(View(viewModel)); } return(NoContent()); }