public PaymentResponseBo Process(PaymentBo payment) { var membershipServiceResponse = membershipService.Upgrade(payment.Customer); if (membershipServiceResponse.MembershipServiceResponseType == MembershipServiceResponseType.Failure) { Logger.Instance.Log(LoggerType.Error, membershipServiceResponse.ErrorMessage); return(new PaymentResponseBo { ErrorMessage = membershipServiceResponse.ErrorMessage, PaymentResponseType = PaymentResponseType.Failure }); } var notificationResponse = notificatiionMembershipService.UpgradeNotify(payment.Customer); if (notificationResponse.MembershipServiceResponseType == MembershipServiceResponseType.Failure) { Logger.Instance.Log(LoggerType.Error, notificationResponse.ErrorMessage); return(new PaymentResponseBo { ErrorMessage = membershipServiceResponse.ErrorMessage, PaymentResponseType = PaymentResponseType.Failure }); } Logger.Instance.Log(LoggerType.Information, this.localizedMessageProvider.GetUpgradeMembershipPaymentSucessfulMessage); return(new PaymentResponseBo { PaymentResponseType = PaymentResponseType.Success }); }
public PaymentResponseBo Pay(PaymentBo payment) { var paymentProcessingService = this.paymentFactory.Create(payment.PaymentType); var response = paymentProcessingService.Process(payment); return(response); }
public override PaymentResponseBo Process(PaymentBo payment) { var packagingSlipServiceResponse = packagingSlipService.GenerateNewSlip(); if (packagingSlipServiceResponse.PackagingSlipGenerationResponseType == PackagingSlipGenerationResponseType.Failure) { Logger.Instance.Log(LoggerType.Error, packagingSlipServiceResponse.ErrorMessage); return(new PaymentResponseBo { ErrorMessage = packagingSlipServiceResponse.ErrorMessage, PaymentResponseType = PaymentResponseType.Failure }); } CalculateAgentCommission(payment); Logger.Instance.Log(LoggerType.Information, this.localizedMessageProvider.GetPhysicalProductPaymentSucessfulMessage); return(new PackagingSlipPaymentResponseBo { PaymentResponseType = PaymentResponseType.Success, PackagingSlip = packagingSlipServiceResponse.PackagingSlip }); }
public abstract PaymentResponseBo Process(PaymentBo payment);
public void CalculateAgentCommission(PaymentBo payment) { var commission = commissionService.Calculate(payment.PaymentValue); agentService.ReceieveCommission(payment.Agent, commission); }