public IHttpActionResult GetDonations(string donationYear = null, int?limit = null, [FromUri(Name = "softCredit")] bool?softCredit = null, [FromUri(Name = "impersonateDonorId")] int?impersonateDonorId = null, bool?includeRecurring = true) { return(Authorized(token => { var impersonateUserId = impersonateDonorId == null ? string.Empty : _mpDonorService.GetEmailViaDonorId(impersonateDonorId.Value).Email; try { var donations = (impersonateDonorId != null) ? _impersonationService.WithImpersonation(token, impersonateUserId, () => _gatewayDonationService.GetDonationsForAuthenticatedUser(token, donationYear, limit, softCredit, includeRecurring)) : _gatewayDonationService.GetDonationsForAuthenticatedUser(token, donationYear, limit, softCredit, includeRecurring); if (donations == null || !donations.HasDonations) { return (RestHttpActionResult <ApiErrorDto> .WithStatus(HttpStatusCode.NotFound, new ApiErrorDto("No matching donations found"))); } return (Ok(donations)); } catch (UserImpersonationException e) { return (e.GetRestHttpActionResult()); } })); }
public IHttpActionResult CreateRecurringGift([FromBody] RecurringGiftDto recurringGiftDto, [FromUri(Name = "impersonateDonorId")] int?impersonateDonorId = null) { return(Authorized(token => { var impersonateUserId = impersonateDonorId == null ? string.Empty : _mpDonorService.GetEmailViaDonorId(impersonateDonorId.Value).Email; try { var contactDonor = (impersonateDonorId != null) ? _impersonationService.WithImpersonation(token, impersonateUserId, () => _donorService.GetContactDonorForAuthenticatedUser(token)) : _donorService.GetContactDonorForAuthenticatedUser(token); var donor = _donorService.CreateOrUpdateContactDonor(contactDonor, string.Empty, string.Empty, string.Empty, string.Empty); var recurringGift = !string.IsNullOrWhiteSpace(impersonateUserId) ? _impersonationService.WithImpersonation(token, impersonateUserId, () => _donorService.CreateRecurringGift(token, recurringGiftDto, donor)) : _donorService.CreateRecurringGift(token, recurringGiftDto, donor); recurringGiftDto.EmailAddress = donor.Email; recurringGiftDto.RecurringGiftId = recurringGift; _analyticsService.Track(donor.ContactId.ToString(), "PaymentSucceededServerSide", new EventProperties() { { "Url", recurringGiftDto.SourceUrl }, { "FundingMethod", recurringGiftDto.Source }, { "Email", "" }, { "CheckoutType", "Registered" }, { "Amount", recurringGiftDto.PlanAmount } }); return Ok(recurringGiftDto); } catch (PaymentProcessorException stripeException) { return (stripeException.GetStripeResult()); } catch (ApplicationException applicationException) { var apiError = new ApiErrorDto("Error calling Ministry Platform " + applicationException.Message, applicationException); throw new HttpResponseException(apiError.HttpResponseMessage); } })); }
public IHttpActionResult CreateRecurringGift([FromBody] RecurringGiftDto recurringGiftDto, [FromUri(Name = "impersonateDonorId")] int?impersonateDonorId = null) { return(Authorized(token => { var impersonateUserId = impersonateDonorId == null ? string.Empty : _mpDonorService.GetEmailViaDonorId(impersonateDonorId.Value).Email; try { var contactDonor = (impersonateDonorId != null) ? _impersonationService.WithImpersonation(token, impersonateUserId, () => _donorService.GetContactDonorForAuthenticatedUser(token)) : _donorService.GetContactDonorForAuthenticatedUser(token); var donor = _donorService.CreateOrUpdateContactDonor(contactDonor, string.Empty, string.Empty, string.Empty, string.Empty); var recurringGift = !string.IsNullOrWhiteSpace(impersonateUserId) ? _impersonationService.WithImpersonation(token, impersonateUserId, () => _donorService.CreateRecurringGift(token, recurringGiftDto, donor)) : _donorService.CreateRecurringGift(token, recurringGiftDto, donor); recurringGiftDto.EmailAddress = donor.Email; recurringGiftDto.RecurringGiftId = recurringGift; return Ok(recurringGiftDto); } catch (PaymentProcessorException stripeException) { return (stripeException.GetStripeResult()); } catch (ApplicationException applicationException) { var apiError = new ApiErrorDto("Error calling Ministry Platform " + applicationException.Message, applicationException); throw new HttpResponseException(apiError.HttpResponseMessage); } })); }
public DonationsDTO GetDonationsForDonor(int donorId, string donationYear = null, bool softCredit = false) { var donor = _mpDonorRepository.GetEmailViaDonorId(donorId); return(GetDonationsForDonor(donor, donationYear, softCredit)); }
public MpContactDonor GetContactDonorForDonorId(int donorId) { return(_mpDonorService.GetEmailViaDonorId(donorId)); }