internal static Message Read(Trx.Messaging.Iso8583.Iso8583Message isoMessage, out bool isSignOn) { Message result = null; isSignOn = false; ISO8583DataExtractor message = new ISO8583DataExtractor(isoMessage); if (isoMessage.IsNetworkManagement()) { if (isoMessage.Fields.Contains(FieldNos.F70_NetworkMgtInfoCode)) { switch (isoMessage.Fields[FieldNos.F70_NetworkMgtInfoCode].Value.ToString()) { //Sign On case "001": result = new SignOn(message); isSignOn = true; break; //Sign Off case "002": result = new SignOff(message); break; //Echo case "301": result = new Echo(message); isSignOn = true; break; default: result = new Echo(message); break; } } } else { result = new Echo(message); } return(result); }
public override Trx.Messaging.Iso8583.Iso8583Message Execute() { Trx.Messaging.Iso8583.Iso8583Message responseMessage = this.IsoMessage.Clone() as Trx.Messaging.Iso8583.Iso8583Message; responseMessage.Fields.Add(FieldNos.F39_ResponseCode, "00"); responseMessage.Fields.Remove(new int[] { FieldNos.F7_TransDateTime, FieldNos.F12_TransLocalTime, FieldNos.F13_TransLocalDate }); responseMessage.SetResponseMessageTypeIdentifier(); DateTime transmissionDate = DateTime.Now; responseMessage.Fields.Add(FieldNos.F7_TransDateTime, string.Format("{0}{1}", string.Format("{0:00}{1:00}", transmissionDate.Month, transmissionDate.Day), string.Format("{0:00}{1:00}{2:00}", transmissionDate.Hour, transmissionDate.Minute, transmissionDate.Second))); responseMessage.Fields.Add(FieldNos.F12_TransLocalTime, string.Format("{0:00}{1:00}{2:00}", transmissionDate.Hour, transmissionDate.Minute, transmissionDate.Second)); responseMessage.Fields.Add(FieldNos.F13_TransLocalDate, string.Format("{0:00}{1:00}", transmissionDate.Month, transmissionDate.Day)); //responseMessage.Fields.Remove(127); return(responseMessage); }