From 3ddd9f57c900ae344f84da4cf7a488c83721ce58 Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 20 Oct 2021 12:38:33 +0300 Subject: [PATCH] Add FailReason to PaymentRequest --- .../PaymentRequestAppService.cs | 10 +++++-- .../PaymentRequests/PaymentRequest.cs | 26 ++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/modules/payment/src/Payment.Application/PaymentRequests/PaymentRequestAppService.cs b/modules/payment/src/Payment.Application/PaymentRequests/PaymentRequestAppService.cs index bd5de42..08d0cbf 100644 --- a/modules/payment/src/Payment.Application/PaymentRequests/PaymentRequestAppService.cs +++ b/modules/payment/src/Payment.Application/PaymentRequests/PaymentRequestAppService.cs @@ -120,8 +120,14 @@ namespace Payment.PaymentRequests var paymentRequest = await _paymentRequestRepository.GetAsync(paymentRequestId); - paymentRequest.State = order.Status == PayPalConsts.OrderStatus.Approved || order.Status == PayPalConsts.OrderStatus.Completed ? - PaymentRequestState.Completed : PaymentRequestState.Failed; + if (order.Status == PayPalConsts.OrderStatus.Approved || order.Status == PayPalConsts.OrderStatus.Completed) + { + paymentRequest.SetAsCompleted(); + } + else + { + paymentRequest.SetAsFailed(order.Status); + } paymentRequest.ExtraProperties.Add(PayPalConsts.OrderIdPropertyName, order.Id); diff --git a/modules/payment/src/Payment.Domain/PaymentRequests/PaymentRequest.cs b/modules/payment/src/Payment.Domain/PaymentRequests/PaymentRequest.cs index dbbcc81..e8038bf 100644 --- a/modules/payment/src/Payment.Domain/PaymentRequests/PaymentRequest.cs +++ b/modules/payment/src/Payment.Domain/PaymentRequests/PaymentRequest.cs @@ -8,22 +8,24 @@ namespace Payment.PaymentRequests public class PaymentRequest : CreationAuditedAggregateRoot, ISoftDelete { [CanBeNull] - public string CustomerId { get; private set; } + public string CustomerId { get; protected set; } [CanBeNull] - public string ProductId { get; private set; } + public string ProductId { get; protected set; } [NotNull] - public string ProductName { get; private set; } + public string ProductName { get; protected set; } - public decimal Price { get; private set; } + public decimal Price { get; protected set; } - public string Currency { get; private set; } + public string Currency { get; protected set; } - public PaymentRequestState State { get; set; } + public PaymentRequestState State { get; protected set; } public bool IsDeleted { get; set; } + public string FailReason { get; protected set; } + private PaymentRequest() { @@ -44,5 +46,17 @@ namespace Payment.PaymentRequests Price = price; Currency = currency; } + + public virtual void SetAsCompleted() + { + State = PaymentRequestState.Completed; + FailReason = null; + } + + public virtual void SetAsFailed(string failReason) + { + State = PaymentRequestState.Failed; + FailReason = failReason; + } } } \ No newline at end of file