public static CustomerIdentificationDataFieldModel Deserialize <T>(this string value, string cardholderIdCodeType = CardholderIdCodeTypeModel.CardholderSignatureNoPinPadAvailable) where T : CustomerIdentificationDataFieldModel { var result = new CustomerIdentificationDataFieldModel { CardholderIdCode = cardholderIdCodeType }; switch (cardholderIdCodeType) { case CardholderIdCodeTypeModel.CardPresentUnableToReadMagStripeSendingAvsData: result.AVSZipCode = value; break; case CardholderIdCodeTypeModel.CardNotPresentIncludesEcomAndFullAvsData: if (0 < value.Length) { var splitAvsValue = value.Split(" "); if (splitAvsValue.Length == 1) { result.AVSZipCode = splitAvsValue[0]; } else if (splitAvsValue.Length > 1) { result.AVSStreetAddress = splitAvsValue[0]; result.AVSZipCode = splitAvsValue[1]; } } break; case CardholderIdCodeTypeModel.PersonalIdentificationNumber32CharStaticKeyNonUsa: case CardholderIdCodeTypeModel.PinAtAutomatedDispensingMachine32CharStaticKey: case CardholderIdCodeTypeModel.PinAtAutomatedDispensingMachine32CharDukpt: if (32 <= value.Length) { result.EncryptedPinBlock = value.Truncate(16); result.DUKPTValue = value.Substring(16); } break; } return(result); }
public static string Serialize(this CustomerIdentificationDataFieldModel model) { switch (model.CardholderIdCode) { case CardholderIdCodeTypeModel.CardPresentUnableToReadMagStripeSendingAvsData: return(model.AVSZipCode); case CardholderIdCodeTypeModel.CardNotPresentIncludesEcomAndFullAvsData: return(string.Format("{0} {1}", model.AVSStreetAddress, model.AVSZipCode)); case CardholderIdCodeTypeModel.PersonalIdentificationNumber32CharStaticKeyNonUsa: case CardholderIdCodeTypeModel.PinAtAutomatedDispensingMachine32CharStaticKey: case CardholderIdCodeTypeModel.PinAtAutomatedDispensingMachine32CharDukpt: return(string.Format("{0}{1}", model.EncryptedPinBlock, model.DUKPTValue)); } return(string.Empty); }
public static void SetCardholderData(this Group1AuthorizationModel group1Authorization, CustomerDataFieldModel customerData, CustomerIdentificationDataFieldModel cardholderIdentification) { group1Authorization.CardholderIdentificationCode = cardholderIdentification.CardholderIdCode; group1Authorization.AccountDataSource = customerData.AccountDataSource; group1Authorization.CustomerData = customerData; group1Authorization.CardholderIdentificationData = cardholderIdentification; }