Beispiel #1
0
        public bool ConfirmPaymentAndUpdateStatus(PaymentConfirmationRequestModel requestModel)
        {
            bool isVerified = false;

            var payment = _repository.GetAll().FirstOrDefault(x =>
                                                              x.SubscriptionId == requestModel.SubscriptionId && x.PaymentStatus == requestModel.PaymentStatus);

            if (payment == null)
            {
                return(false);
            }

            //if (payment.TransectionNumber.Trim() == requestModel.VerificationCode.Trim())
            //{
            payment.PaymentStatus = SubscriptionPaymentStatus.Paid;
            //payment.VerificationCode = requestModel.VerificationCode;
            payment.VerificationCode = payment.TransectionNumber;
            isVerified = true;
            //}
            //else
            //{
            //    payment.PaymentStatus = SubscriptionPaymentStatus.Rejected;
            //    payment.VerificationCode = requestModel.VerificationCode;
            //}

            _repository.EditAsHost(payment);
            _repository.Commit();

            return(isVerified);
        }
Beispiel #2
0
        public IHttpActionResult Confirm(PaymentConfirmationRequestModel requestModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            using (var scope = new TransactionScope())
            {
                var    company = _service.GetCompany(requestModel.SubscriptionId);
                string message = null;

                var verifyPaymentAndUpdateStatus = _service.ConfirmPaymentAndUpdateStatus(requestModel);

                if (verifyPaymentAndUpdateStatus == true)
                {
                    message = SmsHelper.PaymentConfirmedMessage;
                    _subscriptionService.UpdateSubscriptionStatus(requestModel.SubscriptionId, true);

                    if (company.IsEmailConfirmed)
                    {
                        _service.SendPaymentConfirmationEmail(requestModel.SubscriptionId, company.Email, company.Name);
                    }
                }

                if (verifyPaymentAndUpdateStatus == false)
                {
                    message = SmsHelper.PaymentFailedMessage;

                    if (company.IsEmailConfirmed)
                    {
                        _service.SendPaymentRejectionEmail(requestModel.SubscriptionId, company.Email, company.Name);
                    }
                }


                if (company.IsPhoneConfirmed)
                {
                    _smsService.SendOneToOneSingleSmsUsingApi(company.Phone, message);
                }

                if (verifyPaymentAndUpdateStatus == false)
                {
                    return(BadRequest("Transaction number is not valid. Failed to verify payment."));
                }

                scope.Complete();
            }


            return(Ok(true));
        }