public async Task _01CreateNewDonationFromSameDonorAsync() { DonationDB donation = new DonationDB() { Currency = "USD", Date = DateTime.Now, Fee = 0.15M, Gross = 2.0M, TransactionId = "2", Donor = CreateDonorWithLondonAddress() }; await AddAndAssertAsync(donation).ConfigureAwait(false); }
public async Task _04CreateNewDonationFromOtherDonorWithSameAddressAsync() { DonationDB donation = new DonationDB() { Currency = "USD", Date = DateTime.Now, Fee = 0.15M, Gross = 5.0M, TransactionId = "5", Donor = CreateDonorWithAmsterdamAddress() }; await AddAndAssertAsync(donation).ConfigureAwait(false); }
public async Task _05CreateNewDonationFromDonorWithNewAddress_OldAddressIsUsedAsync() { DonorDB donor = CreateDonorWithLondonAddress(); DonationDB donation = new DonationDB() { Currency = "USD", Date = DateTime.Now, Fee = 0.15M, Gross = 6.0M, TransactionId = "6", Donor = donor }; await AddAndAssertAsync(donation).ConfigureAwait(false); }
public async Task _02CreateNewDonationFromChangedDonorWithUnmodifiedAddressAsync() { DonorDB donor = CreateDonorWithLondonAddress(); donor.IsVerified = true; DonationDB donation = new DonationDB() { Currency = "USD", Date = DateTime.Now, Fee = 0.15M, Gross = 3.0M, TransactionId = "3", Donor = donor }; await AddAndAssertAsync(donation).ConfigureAwait(false); }
public async Task _06CreateNewDonationFromDonorWithChangedButExistAddress_OldAddressIsNotUsedAsync() { DonorDB donor = CreateDonorWithAmsterdamAddress(); donor.Address = CreateLondonAddress(); DonationDB donation = new DonationDB() { Currency = "USD", Date = DateTime.Now, Fee = 0.15M, Gross = 7.0M, TransactionId = "7", Donor = donor }; await AddAndAssertAsync(donation).ConfigureAwait(false); }
/// <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)); }