public static FinancialTransaction Translate(PCODonation inputTransaction) { var transaction = new FinancialTransaction(); transaction.Id = inputTransaction.id; if (inputTransaction.batchId.HasValue) { transaction.BatchId = inputTransaction.batchId.Value; } if (inputTransaction.payment_method == "check") { transaction.TransactionCode = inputTransaction.payment_check_number; } else if (inputTransaction.payment_method != "cash") { transaction.TransactionCode = inputTransaction.payment_last4; } transaction.TransactionDate = inputTransaction.received_at; transaction.AuthorizedPersonId = inputTransaction.personId; switch (inputTransaction.payment_method) { case "cash": transaction.CurrencyType = CurrencyType.Cash; break; case "check": transaction.CurrencyType = CurrencyType.Check; break; case "credit card": case "debit card": case "card": transaction.CurrencyType = CurrencyType.CreditCard; break; case "ach": transaction.CurrencyType = CurrencyType.ACH; break; case "non-cash": transaction.CurrencyType = CurrencyType.NonCash; break; default: transaction.CurrencyType = CurrencyType.Unknown; break; } transaction.CreatedDateTime = inputTransaction.created_at; transaction.ModifiedDateTime = inputTransaction.updated_at; return(transaction); }
public static List <PCODonation> GetDonations(bool importing, DateTime?updatedAfter, string apiEndPoint) { // Create variables to store the results var dataItems = new List <PCOData>(); var includedItems = new List <PCOData>(); // Set the endpoint if not passed from parameter apiEndPoint = apiEndPoint ?? "https://api.planningcenteronline.com/giving/v2/donations?include=designations&per_page=100"; // If not importing and querying only changes, add a parameter to specify that the results should be sored in descending order of last update if (!importing && updatedAfter.HasValue) { apiEndPoint = apiEndPoint + "&order=-updated_at"; } // Query Planning Center for people if (PCOGetItems(apiEndPoint, dataItems, includedItems, updatedAfter, !importing, "", "")) { // Create variable to store the people var donations = new List <PCODonation>(); // Loop through each item in the result of api call foreach (var item in dataItems) { // Create the person record var donation = new PCODonation(item); if (donation != null) { // Update Designations donation.UpdateDesignation(item, includedItems); // Add to list of results donations.Add(donation); } } // return the list of people return(donations); } // An error occurred trying to query people so return null return(null); }
public static List <FinancialTransactionDetail> Translate(PCODonation inputDonation) { var transactionDetails = new List <FinancialTransactionDetail>(); foreach (var inputTransactionDetail in inputDonation.designations) { var transactionDetail = new FinancialTransactionDetail(); transactionDetail.Id = inputTransactionDetail.id; transactionDetail.AccountId = inputTransactionDetail.fundId; transactionDetail.Amount = Convert.ToDecimal(inputTransactionDetail.amount_cents.Value / 100.00); transactionDetail.TransactionId = inputDonation.id; transactionDetail.CreatedDateTime = inputDonation.created_at; transactionDetail.ModifiedDateTime = inputDonation.updated_at; transactionDetails.Add(transactionDetail); } return(transactionDetails); }