/// <summary> /// Creates a Transaction directly from the API Response /// </summary> /// <param name="trans">The trans.</param> /// <returns></returns> public static Transaction NewFromResponse(transactionDetailsType trans) { var result = new Transaction(); result.TransactionID = trans.transId; result.DateSubmitted = trans.submitTimeUTC; result.TransactionType = trans.transactionType; result.Status = trans.transactionStatus; result.ResponseCode = trans.responseCode; result.ResponseReason = trans.responseReasonDescription; result.AuthorizationCode = trans.authCode; result.AVSCode = trans.AVSResponse; result.CardResponseCode = trans.cardCodeResponse; result.CAVVCode = trans.CAVVResponse; if (trans.FDSFilters != null) { for (int i = 0; i < trans.FDSFilters.Length; i++) { var filter = (FDSFilterType)trans.FDSFilters[i]; result.FraudFilters.Add(filter.name); } } if (trans.batch != null) { result.BatchSettlementID = trans.batch.batchId; result.BatchSettlementState = trans.batch.settlementState; result.BatchSettledOn = trans.batch.settlementTimeUTC; } if (trans.order != null) { result.InvoiceNumber = trans.order.invoiceNumber; result.PONumber = trans.order.purchaseOrderNumber; result.OrderDescription = trans.order.description; } result.RequestedAmount = trans.requestedAmount; result.AuthorizationAmount = trans.authAmount; result.SettleAmount = trans.settleAmount; if (trans.tax != null) { result.Tax = trans.tax.amount; result.TaxDescription = trans.tax.description; } if (trans.shipping != null) { result.Shipping = trans.shipping.amount; result.ShippingDescription = trans.shipping.description; } if (trans.duty != null) { result.Duty = trans.duty.amount; result.DutyDescription = trans.duty.description; } if (trans.lineItems != null) { for (int i = 0; i < trans.lineItems.Length; i++) { var item = (lineItemType)trans.lineItems[i]; var line = new LineItem(); line.Description = item.description; line.ID = item.itemId; line.Name = item.name; line.Quantity = item.quantity; line.Taxable = item.taxable; line.UnitPrice = item.unitPrice; result._lineItems.Add(line); } } if (trans.payment != null) { if (trans.payment.Item.GetType() == typeof(creditCardMaskedType)) { var cc = (creditCardMaskedType)trans.payment.Item; result.CardNumber = cc.cardNumber; result.CardExpiration = cc.expirationDate; result.CardType = cc.cardType; } } if (trans.customer != null) { result.CustomerID = trans.customer.id; result.CustomerEmail = trans.customer.email; } if (trans.billTo != null) { result.BillingAddress = new Address(trans.billTo); } if (trans.shipTo != null) { result.ShippingAddress = new Address(trans.shipTo); } result.IsRecurring = trans.recurringBilling; result.TaxExempt = trans.taxExempt; return result; }
/// <summary> /// Creates a Transaction directly from the API Response /// </summary> /// <param name="trans">The trans.</param> /// <returns></returns> public static Transaction NewFromResponse(transactionDetailsType trans) { var result = new Transaction(); result.TransactionID = trans.transId; result.DateSubmitted = trans.submitTimeUTC; result.TransactionType = trans.transactionType; result.Status = trans.transactionStatus; result.ResponseCode = trans.responseCode; result.ResponseReason = trans.responseReasonDescription; result.AuthorizationCode = trans.authCode; result.AVSCode = trans.AVSResponse; result.CardResponseCode = trans.cardCodeResponse; result.CAVVCode = trans.CAVVResponse; if (trans.FDSFilters != null) { for (int i = 0; i < trans.FDSFilters.Length; i++) { var filter = (FDSFilterType)trans.FDSFilters[i]; result.FraudFilters.Add(filter.name); } } if (trans.batch != null) { result.BatchSettlementID = trans.batch.batchId; result.BatchSettlementState = trans.batch.settlementState; result.BatchSettledOn = trans.batch.settlementTimeUTC; } if (trans.order != null) { result.InvoiceNumber = trans.order.invoiceNumber; result.PONumber = trans.order.purchaseOrderNumber; result.OrderDescription = trans.order.description; } result.RequestedAmount = trans.requestedAmount; result.AuthorizationAmount = trans.authAmount; result.SettleAmount = trans.settleAmount; if (trans.tax != null) { result.Tax = trans.tax.amount; result.TaxDescription = trans.tax.description; } if (trans.shipping != null) { result.Shipping = trans.shipping.amount; result.ShippingDescription = trans.shipping.description; } if (trans.duty != null) { result.Duty = trans.duty.amount; result.DutyDescription = trans.duty.description; } if (trans.lineItems != null) { for (int i = 0; i < trans.lineItems.Length; i++) { var item = (lineItemType)trans.lineItems[i]; var line = new LineItem(); line.Description = item.description; line.ID = item.itemId; line.Name = item.name; line.Quantity = item.quantity; line.Taxable = item.taxable; line.UnitPrice = item.unitPrice; result._lineItems.Add(line); } } if (trans.payment != null) { if (trans.payment.Item.GetType() == typeof (creditCardMaskedType)) { var cc = (creditCardMaskedType) trans.payment.Item; result.CardNumber = cc.cardNumber; result.CardExpiration = cc.expirationDate; result.CardType = cc.cardType; } if (trans.payment.Item.GetType() == typeof (bankAccountMaskedType)) { var ba = (bankAccountMaskedType) trans.payment.Item; result.eCheckBankAccount = new BankAccount() { accountTypeSpecified = ba.accountTypeSpecified, accountType = (BankAccountType) Enum.Parse(typeof (BankAccountType), ba.accountType.ToString(), true), routingNumber = ba.routingNumber, nameOnAccount = ba.nameOnAccount, echeckTypeSpecified = ba.echeckTypeSpecified, echeckType = (EcheckType) Enum.Parse(typeof (EcheckType), ba.echeckType.ToString(), true), bankName = ba.bankName }; } } if (trans.customer != null) { result.CustomerID = trans.customer.id; result.CustomerEmail = trans.customer.email; } if (trans.billTo != null) { result.BillingAddress = new Address(trans.billTo); } if (trans.shipTo != null) { result.ShippingAddress = new Address(trans.shipTo); } result.IsRecurring = trans.recurringBilling; result.TaxExempt = trans.taxExempt; result.MarketType = trans.marketType; result.Product = trans.product; result.MobileDeviceID = trans.mobileDeviceId; result.RefTransactionID = trans.refTransId; if ((trans.subscription != null) && (trans.subscription.id > 0)) { result.Subscription = new SubscriptionPayment(); result.Subscription.ID = trans.subscription.id; result.Subscription.PayNum = trans.subscription.payNum; } if ((trans.returnedItems != null) && (trans.returnedItems.Any())) { result.HasReturnedItems = NullableBooleanEnum.True; result.ReturnedItems = new ReturnedItemType[trans.returnedItems.Count()]; int iRI = 0; foreach (var ri in trans.returnedItems) { result.ReturnedItems[iRI] = new ReturnedItemType() { id = ri.id, code = ri.code, dateLocal = ri.dateLocal, dateUTC = ri.dateUTC, description = ri.description }; iRI++; } } if ((trans.solution != null) && (trans.solution.id.Length > 0)) { result.Solution = new SolutionType() { id = trans.solution.id, name = trans.solution.name }; } return result; }
/// <summary> /// Creates a Transaction directly from the API Response /// </summary> /// <param name="trans">The trans.</param> /// <returns></returns> public static Transaction NewFromResponse(transactionDetailsType trans) { var result = new Transaction(); result.TransactionID = trans.transId; result.DateSubmitted = trans.submitTimeUTC; result.TransactionType = trans.transactionType; result.Status = trans.transactionStatus; result.ResponseCode = trans.responseCode; result.ResponseReason = trans.responseReasonDescription; result.AuthorizationCode = trans.authCode; result.AVSCode = trans.AVSResponse; result.CardResponseCode = trans.cardCodeResponse; result.CAVVCode = trans.CAVVResponse; if (trans.FDSFilters != null) { for (int i = 0; i < trans.FDSFilters.Length; i++) { var filter = (FDSFilterType)trans.FDSFilters[i]; result.FraudFilters.Add(filter.name); } } if (trans.batch != null) { result.BatchSettlementID = trans.batch.batchId; result.BatchSettlementState = trans.batch.settlementState; result.BatchSettledOn = trans.batch.settlementTimeUTC; } if (trans.order != null) { result.InvoiceNumber = trans.order.invoiceNumber; result.PONumber = trans.order.purchaseOrderNumber; result.OrderDescription = trans.order.description; } result.RequestedAmount = trans.requestedAmount; result.AuthorizationAmount = trans.authAmount; result.SettleAmount = trans.settleAmount; if (trans.tax != null) { result.Tax = trans.tax.amount; result.TaxDescription = trans.tax.description; } if (trans.shipping != null) { result.Shipping = trans.shipping.amount; result.ShippingDescription = trans.shipping.description; } if (trans.duty != null) { result.Duty = trans.duty.amount; result.DutyDescription = trans.duty.description; } if (trans.lineItems != null) { for (int i = 0; i < trans.lineItems.Length; i++) { var item = (lineItemType)trans.lineItems[i]; var line = new LineItem(); line.Description = item.description; line.ID = item.itemId; line.Name = item.name; line.Quantity = item.quantity; line.Taxable = item.taxable; line.UnitPrice = item.unitPrice; result._lineItems.Add(line); } } if (trans.payment != null) { if (trans.payment.Item.GetType() == typeof(creditCardMaskedType)) { var cc = (creditCardMaskedType)trans.payment.Item; result.CardNumber = cc.cardNumber; result.CardExpiration = cc.expirationDate; result.CardType = cc.cardType; } if (trans.payment.Item.GetType() == typeof(bankAccountMaskedType)) { var ba = (bankAccountMaskedType)trans.payment.Item; result.eCheckBankAccount = new BankAccount() { accountTypeSpecified = ba.accountTypeSpecified, accountType = (BankAccountType)Enum.Parse(typeof(BankAccountType), ba.accountType.ToString(), true), routingNumber = ba.routingNumber, nameOnAccount = ba.nameOnAccount, echeckTypeSpecified = ba.echeckTypeSpecified, echeckType = (EcheckType)Enum.Parse(typeof(EcheckType), ba.echeckType.ToString(), true), bankName = ba.bankName }; } } if (trans.customer != null) { result.CustomerID = trans.customer.id; result.CustomerEmail = trans.customer.email; } if (trans.billTo != null) { result.BillingAddress = new Address(trans.billTo); } if (trans.shipTo != null) { result.ShippingAddress = new Address(trans.shipTo); } result.IsRecurring = trans.recurringBilling; result.TaxExempt = trans.taxExempt; result.MarketType = trans.marketType; result.Product = trans.product; result.MobileDeviceID = trans.mobileDeviceId; if ((trans.subscription != null) && (trans.subscription.id > 0)) { result.Subscription = new SubscriptionPayment(); result.Subscription.ID = trans.subscription.id; result.Subscription.PayNum = trans.subscription.payNum; } if ((trans.returnedItems != null) && (trans.returnedItems.Any())) { result.HasReturnedItems = NullableBooleanEnum.True; result.ReturnedItems = new ReturnedItemType[trans.returnedItems.Count()]; int iRI = 0; foreach (var ri in trans.returnedItems) { result.ReturnedItems[iRI] = new ReturnedItemType() { id = ri.id, code = ri.code, dateLocal = ri.dateLocal, dateUTC = ri.dateUTC, description = ri.description }; iRI++; } } if ((trans.solution != null) && (trans.solution.id.Length > 0)) { result.Solution = new SolutionType() { id = trans.solution.id, name = trans.solution.name }; } return(result); }