public string DeleteCreditCard(int Id) { var existedCreditCard = _creditCardRepository.Get(x => x.Deleted == false && x.Id == Id); if (existedCreditCard == null) { return("Not found Credit Card"); } else { existedCreditCard.Deleted = true; _creditCardRepository.Update(existedCreditCard); _unitOfWork.CommitChanges(); } return(""); }
public string MakePayment(int RouteId) { //var routeToMakePayment = _routeService.getRouteDetail(RouteId); //var customerInfor = _customerService.FindCustomerById(routeToMakePayment.CutomerId); //var creditCardToMakePayment = _creditCardService.GetCardToPayment(routeToMakePayment.CustomerId); var routeToMakePayment = _routeRepository.Get(x => x.Id == RouteId); var customerInfor = _customerRepository.Get(x => x.Id == routeToMakePayment.CustomerId); var creditCardToMakePayment = _creditCardRepository.Get(x => x.Deleted == false && x.CustomerId == routeToMakePayment.CustomerId && x.Isdefault == true); //Stripe charge money StripeConfiguration.SetApiKey(SETTING.Value.SecretStripe); var options = new ChargeCreateOptions { Amount = Convert.ToInt64(routeToMakePayment.TotalAmount * 100), Currency = "usd", Description = customerInfor.FullName.ToUpper() + "-" + customerInfor.Email + "-" + customerInfor.PhoneNumber + " buy Route Code: " + routeToMakePayment.Code, SourceId = creditCardToMakePayment.CardId, // obtained with Stripe.js, CustomerId = customerInfor.StripeId, }; var service = new ChargeService(); service.ExpandBalanceTransaction = true; Charge charge = service.Create(options); PaymentCreateViewModel model = new PaymentCreateViewModel(); model.RouteId = routeToMakePayment.Id; model.CreditCartId = creditCardToMakePayment.Id; model.Description = "You bought route " + routeToMakePayment.Code + ". Thank you for using our service."; model.Amount = routeToMakePayment.TotalAmount; model.Status = PaymentStatus.Success; model.StripeChargeId = charge.Id; model.FeeAmount = Convert.ToDecimal(charge.BalanceTransaction.Fee) / 100; var payment = _mapper.Map <PaymentCreateViewModel, Payment>(model); //map từ ViewModel qua Model _paymentRepository.Add(payment); _unitOfWork.CommitChanges(); return(""); }
public ActionResult Get(int creditCardId) { var userId = _userManager.GetUserAsync(HttpContext.User).Result.Id; var creditCard = _creditCardRepository.Get(userId, creditCardId); if (creditCard != null) { return(Ok(creditCard)); } else { return(NoContent()); } }
public async Task <IEnumerable <CreditCartOutput> > Handle(GetAllCreditCardQuery request, CancellationToken cancellationToken) { _logger.LogTrace("Handle Begin"); var dbResult = await _creditCardRepository.Get(); var result = dbResult.Select(r => new CreditCartOutput() { Id = r.Id, Name = r.Name, CardNumber = r.CardNumber, ExpiryDate = r.ExpiryDate }); _logger.LogTrace("Handle Return"); return(result); }
/// <summary> /// Executa o tratamento do comando /// </summary> /// <param name="message">Comando de Exclusão de Cartão de Crédito</param> public async Task <Response> Handle(RemoveCreditCardCommand message) { try { var creditCard = await _repository.Get(message.CreditCardId); if (creditCard == null) { return(new Response().AddError("Nenhum cartão de crédito encontrado")); } await _repository.RemoveCreditCard(creditCard); return(new Response("Cartão de crédito removido com sucesso")); } catch (Exception ex) { return(new Response().AddError(ex.Message)); } }
/// <summary> /// Executa o tratamento do comando /// </summary> /// <param name="message">Comando de Pagamento de Cartão de Crédito</param> public async Task <Response> Handle(PayCreditCardCommand message) { try { var creditCard = await _creditCardRepository.Get(message.CardId); creditCard.ReleaseCredit(message.Amount); await _creditCardRepository.ChangeCardLimits(creditCard); var response = new { amountPaid = message.Amount, creditCard.AvailableCredit, creditCard.PendingPayment }; return(new Response(response)); } catch (Exception ex) { return(new Response().AddError(ex.Message)); } }