示例#1
0
        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);
        }
示例#2
0
        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);
        }