public DE48_MessageControl FromByteArray(byte[] buffer) { NetworkMessage nm = NetworkMessage.Parse(buffer, Iso8583MessageType.SubElement_DE_048); CommunicationDiagnostics = nm.GetDataElement <DE48_1_CommunicationDiagnostics>(DataElementId.DE_001); HardwareSoftwareConfig = nm.GetDataElement <DE48_2_HardwareSoftwareConfig>(DataElementId.DE_002); LanguageCode = nm.GetString(DataElementId.DE_003); string _batchNumber = nm.GetString(DataElementId.DE_004); if (!string.IsNullOrEmpty(_batchNumber)) { SequenceNumber = int.Parse(_batchNumber.Substring(0, 6)); BatchNumber = int.Parse(_batchNumber.Substring(6)); } ShiftNumber = nm.GetString(DataElementId.DE_005); ClerkId = nm.GetString(DataElementId.DE_006); CustomerData = nm.GetDataElement <DE48_8_CustomerData>(DataElementId.DE_008); Track2ForSecondCard = nm.GetString(DataElementId.DE_009); Track1ForSecondCard = nm.GetString(DataElementId.DE_010); CardType = nm.GetStringConstant(DataElementId.DE_011); AdministrativelyDirectedTaskCode = nm.GetByteConstant(DataElementId.DE_012); RfidData = nm.GetString(DataElementId.DE_013); PinEncryptionMethodology = nm.GetDataElement <DE48_14_PinEncryptionMethodology>(DataElementId.DE_014); PosConfiguration = nm.GetDataElement <DE48_33_PosConfiguration>(DataElementId.DE_033); MessageConfiguration = nm.GetDataElement <DE48_34_MessageConfiguration>(DataElementId.DE_034); Name1 = nm.GetDataElement <DE48_Name>(DataElementId.DE_035); Name2 = nm.GetDataElement <DE48_Name>(DataElementId.DE_036); SecondaryAccountNumber = nm.GetString(DataElementId.DE_037); PriorMessageInformation = nm.GetDataElement <DE48_39_PriorMessageInformation>(DataElementId.DE_039); addressIndex = 0; foreach (DataElementId addressId in addressElementIds) { DE48_Address address = nm.GetDataElement <DE48_Address>(addressId); if (address != null) { addresses[addressId] = address; } } return(this); }
public void AddAddress(DE48_Address address) { addresses[addressElementIds[addressIndex++]] = address; }