public async Task <IActionResult> PurchaseMiles(PurchaseMilesViewModel model) { if (ModelState.IsValid) { if (model.Quantity != 2000) { ModelState.AddModelError(string.Empty, "Can only purchase 2000 miles per transaction"); } var client = await _clientRepository.GetClientByEmailAsync(User.Identity.Name); if (client == null) { return(NotFound()); } model.CreditCardInfo.Client = client; await _creditCardRepository.CheckExistingCreditCardByNumberAsync(model.CreditCardInfo); ViewData["Message"] = await _milesTransactionRepository.PurchaseMilesAsync(model.Quantity, client); ResetModel(model); return(View(model)); } return(View(model)); }