Example #1
0
        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);
        }