public async Task NotifyStatusUpdateAsync(InvoiceStatusUpdateNotification notification) { if (!notification.Status.IsPaidStatus()) { return; } Invoice invoice = await _invoiceRepository.FindByPaymentRequestIdAsync(notification.PaymentRequestId); if (invoice == null) { PaymentRequestModel paymentRequest = await _payInternalClient.GetPaymentRequestAsync( notification.MerchantId, notification.PaymentRequestId); if (paymentRequest.Initiator != Constants.PaymentRequestInitiator) { return; } throw new InvoiceNotFoundException(); } await _emailService.Send(new PaymentReceivedEmail { MerchantId = invoice.MerchantId, EmployeeId = invoice.EmployeeId, InvoiceId = invoice.Id, InvoiceNumber = invoice.Number, PaidAmount = notification.Amount, PaymentAsset = notification.AssetId, PaidDate = notification.Date, Payer = invoice.ClientName }); }
public async Task MockPayment([FromBody] InvoiceStatusUpdateNotification model) { await _notificationsService.NotifyStatusUpdateAsync(model); }