///<summary>Only deletes the credit card from Open Dental. We currently do not delete PayConnect tokens from PayConnect anywhere like we do with XCharge/XWeb/PaySimple. ///Throws exceptions.</summary> public static void DeleteCreditCard(Patient pat, CreditCard cc) { if (pat == null) { throw new ODException("No Patient Found", ODException.ErrorCodes.NoPatientFound); } if (cc == null) { throw new ODException("No Credit Card Found", ODException.ErrorCodes.OtkArgsInvalid); } if (string.IsNullOrEmpty(cc.PayConnectToken)) { throw new ODException("Invalid CC Alias", ODException.ErrorCodes.OtkArgsInvalid); } CreditCards.Delete(cc.CreditCardNum); List <CreditCard> creditCards = CreditCards.Refresh(pat.PatNum); for (int i = 0; i < creditCards.Count; i++) { creditCards[i].ItemOrder = creditCards.Count - (i + 1); CreditCards.Update(creditCards[i]); //Resets ItemOrder. } }
public CreditCard ToCreditCard() { try { //This is the class layout for the fields to be pulled out from the successful response string stored in the table var responseTypeParial = new { CreditCardNumber = "", CreditCardExpireDate = "", }; //Pull out all of the field values we care about from the response string var responseValues = JsonConvert.DeserializeAnonymousType(LastResponseStr, responseTypeParial); return(new CreditCard() { PatNum = PatNum, PayConnectToken = PaymentToken, CCNumberMasked = responseValues.CreditCardNumber, CCExpiration = new DateTime(2000 + int.Parse(responseValues.CreditCardExpireDate.Substring(2, 2)), int.Parse(responseValues.CreditCardExpireDate.Substring(0, 2)), 1), //CCExpDate is stored as MMyy from PayConnect CCSource = CCSource, ClinicNum = Patients.GetPat(PatNum).ClinicNum, ItemOrder = CreditCards.Refresh(PatNum).Count, Address = "", Zip = "", ChargeAmt = 0, DateStart = DateTime.MinValue, DateStop = DateTime.MinValue, Note = "", PayPlanNum = 0, XChargeToken = "", PayConnectTokenExp = new DateTime(2000 + int.Parse(ExpDateToken.Substring(0, 2)), int.Parse(ExpDateToken.Substring(2, 2)), 1), //ExpDateToken is stored as yyMM PaySimpleToken = "", Procedures = "", }); } catch (Exception e) { throw new Exception("Error creating credit card from PayConnect web payment: " + e.Message, e); } }