public MpDonation Update(MpDonation donation) { var token = ApiUserRepository.GetDefaultApiUserToken(); return(MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .Build() .Update(donation)); }
private MpDonation GetDonationByProcessorPaymentId(string processorPaymentId, string apiToken, bool retrieveDistributions) { var result = _ministryPlatformService.GetRecordsDict(_donationsPageId, apiToken, string.Format(",,,,,,,\"{0}\"", processorPaymentId)); if (result.Count == 0 || (result.Last().ToNullableInt("dp_RecordID")) == null) { throw (new DonationNotFoundException(processorPaymentId)); } var dictionary = result.First(); var d = new MpDonation() { donationId = dictionary.ToInt("dp_RecordID"), donorId = dictionary.ToInt("Donor_ID"), donationDate = dictionary.ToDate("Donation_Date"), donationAmt = (int)((dictionary["Donation_Amount"] as decimal? ?? 0M) * Constants.StripeDecimalConversionValue), paymentTypeId = PaymentType.GetPaymentType(dictionary.ToString("Payment_Type")).id, donationNotes = dictionary.ToString("Donation_Status_Notes"), batchId = dictionary.ToNullableInt("Batch_ID"), donationStatus = dictionary.ToInt("Donation_Status_ID") }; if (!retrieveDistributions) { return(d); } var distributions = _ministryPlatformService.GetSubpageViewRecords(_donationDistributionsSubPage, d.donationId, apiToken); if (distributions == null || !distributions.Any()) { return(d); } foreach (var dist in distributions) { d.Distributions.Add(new MpDonationDistribution { donationId = d.donationId, donationDistributionAmt = (int)((dist["Amount"] as decimal? ?? 0M) * Constants.StripeDecimalConversionValue), donationDistributionId = dist.ToInt("Donation_Distribution_ID"), donationDistributionProgram = dist.ToString("Program_ID"), PledgeId = dist.ToNullableInt("Pledge_ID") }); } return(d); }
private static MpDonation GetDonationFromMap(Dictionary <int, MpDonation> donationMap, Dictionary <string, Object> record, int donationId, List <MpDonationStatus> statuses) { if (donationMap.ContainsKey(donationId)) { return(donationMap[donationId]); } var donation = new MpDonation { donationDate = record["Donation_Date"] as DateTime? ?? DateTime.Now, batchId = null, donationId = record["Donation_ID"] as int? ?? 0, donationNotes = record["Notes"] as string, donationStatus = record["Donation_Status_ID"] as int? ?? 0, donationStatusDate = record["Donation_Status_Date"] as DateTime? ?? DateTime.Now, donorId = record["Donor_ID"] as int? ?? 0, paymentTypeId = record["Payment_Type_ID"] as int? ?? 0, transactionCode = record["Transaction_Code"] as string, softCreditDonorId = record["Soft_Credit_Donor_ID"] as int? ?? 0, donorDisplayName = record["Donor_Display_Name"] as string, itemNumber = record["Item_Number"] as string, recurringGift = record["Is_Recurring_Gift"] as bool? ?? false, AccountingCompanyName = record["Company_Name"] as string, AccountingCompanyIncludeOnPrintedStatement = record["Show_Online"] as bool? ?? false }; var status = statuses.Find(x => x.Id == donation.donationStatus) ?? new MpDonationStatus(); donation.IncludeOnGivingHistory = status.DisplayOnGivingHistory; donation.IncludeOnPrintedStatement = status.DisplayOnStatement && donation.AccountingCompanyIncludeOnPrintedStatement; // Determine whether this payment was processed by Forte (i.e., previous processor before Stripe). // If it's legacy, clear out the transaction code so that we don't try to call stripe later with // an invalid (from Stripe's perspective) payment ID. object legacy; if (record.TryGetValue("Is_Legacy", out legacy) && legacy.ToString() == "True") { donation.transactionCode = null; } return(donation); }
public void ShouldGetDonationByTransactionCode() { // Arrange var transactionCode = "111aaa222bbb"; var donationDto = new DonationDto { }; var mpDonation = new MpDonation() { }; _mapper.Setup(m => m.Map <MpDonation>(It.IsAny <DonationDto>())).Returns(mpDonation); _mapper.Setup(m => m.Map <DonationDto>(It.IsAny <MpDonation>())).Returns(donationDto); _donationRepository.Setup(m => m.GetDonationByTransactionCode(It.IsAny <string>())).Returns(mpDonation); // Act var result = _fixture.GetDonationByTransactionCode(transactionCode); // Assert Assert.NotNull(result); }
private static MpDonation GetDonationFromMap(Dictionary <int, MpDonation> donationMap, Dictionary <string, Object> record, int donationId, List <MpDonationStatus> statuses) { if (donationMap.ContainsKey(donationId)) { return(donationMap[donationId]); } var donation = new MpDonation { donationDate = record["Donation_Date"] as DateTime? ?? DateTime.Now, batchId = null, donationId = record["Donation_ID"] as int? ?? 0, donationNotes = record["Notes"] as string, donationStatus = record["Donation_Status_ID"] as int? ?? 0, donationStatusDate = record["Donation_Status_Date"] as DateTime? ?? DateTime.Now, donorId = record["Donor_ID"] as int? ?? 0, paymentTypeId = record["Payment_Type_ID"] as int? ?? 0, transactionCode = record["Transaction_Code"] as string, softCreditDonorId = record["Soft_Credit_Donor_ID"] as int? ?? 0, donorDisplayName = record["Donor_Display_Name"] as string, itemNumber = record["Item_Number"] as string, recurringGift = record["Is_Recurring_Gift"] as bool? ?? false, AccountingCompanyName = record["Company_Name"] as string, AccountingCompanyIncludeOnPrintedStatement = record["Show_Online"] as bool? ?? false }; var status = statuses.Find(x => x.Id == donation.donationStatus) ?? new MpDonationStatus(); donation.IncludeOnGivingHistory = status.DisplayOnGivingHistory; donation.IncludeOnPrintedStatement = status.DisplayOnStatement && donation.AccountingCompanyIncludeOnPrintedStatement; return(donation); }
private static void AddDistributionToDonation(Dictionary <string, Object> record, MpDonation donation) { var amount = Convert.ToInt32((record["Amount"] as decimal? ?? 0) * Constants.StripeDecimalConversionValue); donation.donationAmt += amount; donation.Distributions.Add(new MpDonationDistribution { donationDistributionProgram = record["dp_RecordName"] as string, donationDistributionAmt = amount }); }