Ejemplo n.º 1
0
        public async Task MakeDonationAsync(DonationViewModel donationViewModel)
        {
            var entity = _mapper.Map <DonationViewModel, Donation>(donationViewModel);

            entity.UpdatePurchaseDate();

            if (entity.Valid())
            {
                await _donationRepository.AddAsync(entity);

                return;
            }
            _domainNotificationService.Add(entity);
        }
Ejemplo n.º 2
0
    public async Task <ActionResult <DtoDonation> > Add([FromBody] DtoDonation dtoDonation)
    {
        log.LogInformation("Adding {dtoDonation}", dtoDonation);
        if (!ModelState.IsValid)
        {
            return(BadRequest(getModelStateErrorMessage()));
        }

        if (dtoDonation.ID != 0)
        {
            return(BadRequest("Cannot add with a valid id"));
        }

        var donation    = mapper.Map <Donation>(dtoDonation);
        var newDonation = await donationRepository.AddAsync(donation);

        return(mapper.Map <DtoDonation>(newDonation));
    }
Ejemplo n.º 3
0
        /// <summary>
        /// Asynchronously processes the PayPal notification.
        /// </summary>
        /// <param name="payPalRequestString"></param>
        private async Task ProcessPayPalRequestAsync(string payPalRequestString)
        {
            // check that Payment_status=Completed
            // check that Txn_id has not been previously processed
            // check that Receiver_email is your Primary PayPal email
            // check that Payment_amount/Payment_currency are correct
            // process payment
            NameValueCollection payPalArguments = HttpUtility.ParseQueryString(payPalRequestString);

            if (payPalArguments[IPN.Payment.PAYMENT_STATUS] != IPN.Payment.Status.COMPLETED ||
                _appSettings[AppSettings.OUR_PAYPAL_EMAIL] != payPalArguments[IPN.Transaction.RECEIVER_EMAIL] ||
                await _donationRepository.ContainsAsync(payPalArguments[IPN.Transaction.TXN_ID]).ConfigureAwait(false))
            {
                return;
            }

            Donation   donation   = FillDonation(payPalArguments);
            DonationDB donationDB = _mapper.Map <DonationDB>(donation);
            await _donationRepository.AddAsync(donationDB).ConfigureAwait(false);
        }
        private async Task AddAndAssertAsync(DonationDB donation)
        {
            await _donationRepository.AddAsync(donation).ConfigureAwait(false);

            Assert.IsTrue(await _donationRepository.ContainsAsync(donation.TransactionId).ConfigureAwait(false));
        }