public void UpdateByPaymentAction(PaymentActionModel paymentActionModel) { UpdateExpenseStatus(paymentActionModel.PaymentValue == TotalValue ? ExpenseStatus.Paid : ExpenseStatus.Partial); TotalPaid = paymentActionModel.PaymentValue; }
public async Task SavePaymentAction(PaymentActionModel paymentActionModel) { var expense = await _repository.SelectById(paymentActionModel.ExpenseId); expense.UpdateByPaymentAction(paymentActionModel); await _repository.UpdateAsync(expense); }
public async Task <ActionResult> PostPaymentAction([FromBody] PaymentActionModel paymentActionModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { await _service.SavePaymentAction(paymentActionModel); return(Ok()); } catch (ArgumentException ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex)); } }
public async Task <object> Pay([FromBody] PaymentActionModel paymentModel) { using (_logger.BeginScope("Pay")) { var bankProvider = _paymentServices(paymentModel.SelectedBank); var posConfiguration = Program.PosConfiguration[paymentModel.SelectedBank]; if (posConfiguration.ForcePayRequest3D) { paymentModel.Use3DSecure = posConfiguration.ForcePayRequest3D; } paymentModel.PosConfigurationId = posConfiguration.Id; var bankResponse = await bankProvider.ProcessPayment(paymentModel); var paySession = bankResponse.ToPaySessionSuccess(paymentModel); await _dataServices.InsertPaySessionAsync(paySession); if (bankResponse.Status) { if (bankResponse.IsRedirectContent) { _cache.Set($"VerifyModel:{paymentModel.SessionId}", new VerifyPaymentModel() { Order = paymentModel.Order, SelectedBank = paymentModel.SelectedBank }); _cache.Set($"PaySession:{paymentModel.SessionId}", paySession); } return(new PaymentActionResult { Status = true, Data = bankResponse.ToDataModel() }); } else { return(new PaymentActionResult { Status = false, Error = bankResponse.ErrorCode, ErrorMessage = bankResponse.Error }); } } }
public static PaySession ToPaySessionSuccess(this PaymentResult paymentResult, PaymentActionModel paymentModel) { return(new PaySession { CardHolderName = paymentModel.CreditCard.CardHolderName, CardNumber = $"{paymentModel.CreditCard.CardNumber.Substring(0, 4)} **** **** {paymentModel.CreditCard.CardNumber.Substring(paymentModel.CreditCard.CardNumber.Length - 4, 4)}", CreateOn = DateTime.Now, ProvisionNumber = paymentResult.ProvisionNumber, ReferanceNumber = paymentResult.ReferanceNumber, Status = paymentResult.Status == false ? false : paymentResult.IsRedirectContent == false, UseSecure3D = paymentModel.Use3DSecure, Bank = paymentModel.SelectedBank, PosConfigurationId = paymentModel.PosConfigurationId, Amount = paymentModel.Order.Total, Installment = paymentModel.Order.Installment, Id = Guid.NewGuid(), OrderId = paymentModel.Order.OrderId, UserId = paymentModel.Order.UserId, CustomerId = paymentModel.Order.CustomerId }); }