示例#1
0
        //// override print to show printer texts
        //public override int print(string text, EftTerminal terminal)
        //{
        //    return 0;
        //}
        // override print to show printer texts
        public override int print(string receipt, EftTerminal terminal)
        {
            //Console.WriteLine("ECR printer:");
            //Console.WriteLine(text);
            string MerchantID = string.Empty;
            string TerminalID = string.Empty;
            string Authorization = string.Empty;
            string AID = string.Empty;
            string APPName = string.Empty;
            string TVR = string.Empty;
            string TSI = string.Empty;
            string ACInfo = string.Empty;
            string AC = string.Empty;
            string CARDNO = string.Empty;
            int first, last;

            if (string.IsNullOrEmpty(receipt))
                receipt = @"H$ Maxbox Middle East FZh$ Du Head office  Al Salam Tower, Dubai  DATE:18/12/13 TIME:10:46 MID: 985602000 TID: 00028867 Batch ID: 000001 <CARDHOLDER COPY> PURCHASE H$VISAh$466704******1299 EXPIRES 06/20";

            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
            {
                StreamWriter writer = new StreamWriter(stream);
                writer.WriteLine(string.Format(@"Datetime {0} -- print : Text = {1}.", DateTime.Now, receipt));
                writer.Flush();
                writer.Close();
            }
            try
            {
                // Extracting value of MID
                first = receipt.IndexOf("MID:");
                if (first > -1)
                {
                    last = receipt.IndexOf("TID: ", first);
                    if (last > -1)
                    {
                        MerchantID = receipt.Substring(first + 4, last - first - 4);
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : MID-{1}.", DateTime.Now, MerchantID));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : MID Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }

                // Extracting value of TID
                first = receipt.IndexOf("TID: ");
                if (first > -1)
                {
                    last = receipt.IndexOf("Batch ID:", first);
                    if (last > -1)
                    {
                        TerminalID = receipt.Substring(first + 5, last - first - 5);
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : TID-{1}.", DateTime.Now, TerminalID));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : TID Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }

                // Extracting value of Application
                first = receipt.IndexOf("PURCHASE");
                if (first > -1)
                {
                    last = receipt.IndexOf("h$", first + 11);
                    if (last > -1)
                    {
                        APPName = receipt.Substring(first + 12, last - first - 13);
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : AppName-{1}.", DateTime.Now, APPName));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : PURCHASE Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }

                // Extracting value of AID
                first = receipt.IndexOf("AID: ");
                if (first > -1)
                {
                    last = receipt.IndexOf("*****", first);
                    if (last > -1)
                    {
                        AID = receipt.Substring(first + 5, last - first - 5);
                        int expiryStart = receipt.IndexOf("EXPIRES");

                        if (expiryStart > -1)
                        {
                            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                            {
                                StreamWriter writer = new StreamWriter(stream);
                                writer.WriteLine(string.Format(@"Datetime {0} -- print : CARDNO-{1}.", DateTime.Now, CARDNO));
                                writer.Flush();
                                writer.Close();
                            }
                            CARDNO = receipt.Substring(last, expiryStart - last);
                        }
                        else
                        {
                            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                            {
                                StreamWriter writer = new StreamWriter(stream);
                                writer.WriteLine(string.Format(@"Datetime {0} -- print : EXPIRES not detected.", DateTime.Now, CARDNO));
                                writer.Flush();
                                writer.Close();
                            }
                        }
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : AID-{1}.", DateTime.Now, AID));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : AID Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }
                // Extracting value of AUTH in Declined case
                //first = receipt.IndexOf("AAC:");
                //if (first > -1)
                //{
                //    //last = receipt.IndexOf('\r', first);
                //    //if (last > -1)
                //    //{
                //    Authorization = receipt.Substring(first + 4, 16);
                //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                //    {
                //        StreamWriter writer = new StreamWriter(stream);
                //        writer.WriteLine(string.Format(@"Datetime {0} -- print : Auth-{1}.", DateTime.Now, Authorization));
                //        writer.Flush();
                //        writer.Close();
                //    }
                //    //}
                //    //else
                //    //{
                //    //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                //    //    {
                //    //        StreamWriter writer = new StreamWriter(stream);
                //    //        writer.WriteLine(string.Format(@"Datetime {0} -- print : AAC Linefeed not detected.", DateTime.Now));
                //    //        writer.Flush();
                //    //        writer.Close();
                //    //    }
                //    //}
                //}

                // Extracting value of AUTH in Approved case.
                first = receipt.IndexOf("APPROVAL CODE: ");
                if (first > -1)
                {
                    last = receipt.IndexOf("RESPONSE CODE:", first);
                    if (last > -1)
                    {
                        //Authorization = receipt.Substring(first + 16, last - first - 16);
                        Authorization = receipt.Substring(first + 16, last - first - 17);
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : Auth-{1}.", DateTime.Now, Authorization));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : APPROVAL CODE Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }

                first = receipt.IndexOf("RESPONSE CODE:");
                if (first > -1)
                {
                    Authorization += " RC:" + receipt.Substring(first + 14, 10).Trim();
                }
                else
                {
                    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                    {
                        StreamWriter writer = new StreamWriter(stream);
                        writer.WriteLine(string.Format(@"Datetime {0} -- print : RESPONSE CODE Linefeed not detected.", DateTime.Now));
                        writer.Flush();
                        writer.Close();
                    }
                }

                // Extracting value of TVR
                first = receipt.IndexOf("TVR:");
                if (first > -1)
                {
                    last = receipt.IndexOf("TSI:", first);
                    if (last > -1)
                    {
                        TVR = receipt.Substring(first + 4, last - first - 4);
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : TVR-{1}.", DateTime.Now, TVR));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : TVR Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }

                // Extracting value of TSI
                first = receipt.IndexOf("TSI:");
                if (first > -1)
                {
                    last = receipt.IndexOf("AC INFO :", first);
                    if (last > -1)
                    {
                        TSI = receipt.Substring(first + 4, last - first - 4);
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : TSI-{1}.", DateTime.Now, TSI));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : TSI Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }

                // Extracting value of AC INFO
                first = receipt.IndexOf("AC INFO :");
                if (first > -1)
                {
                    last = receipt.IndexOf("*********", first);
                    if (last > -1)
                    {
                        ACInfo = receipt.Substring(first + 9, last - first - 9);
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : ACInfo-{1}.", DateTime.Now, ACInfo));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    else
                    {
                        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                        {
                            StreamWriter writer = new StreamWriter(stream);
                            writer.WriteLine(string.Format(@"Datetime {0} -- print : ACInfo Linefeed not detected.", DateTime.Now));
                            writer.Flush();
                            writer.Close();
                        }
                    }
                }

                // Extracting value of AC
                first = receipt.IndexOf("AC :");
                if (first > -1)
                {
                    //last = receipt.IndexOf('\r', first);
                    //if (last > -1)
                    //{
                    AC = receipt.Substring(first + 4, 16);
                    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                    {
                        StreamWriter writer = new StreamWriter(stream);
                        writer.WriteLine(string.Format(@"Datetime {0} -- print : AC-{1}.", DateTime.Now, AC));
                        writer.Flush();
                        writer.Close();
                    }
                    //}
                    //else
                    //{
                    //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                    //    {
                    //        StreamWriter writer = new StreamWriter(stream);
                    //        writer.WriteLine(string.Format(@"Datetime {0} -- print : AC Linefeed not detected.", DateTime.Now));
                    //        writer.Flush();
                    //        writer.Close();
                    //    }
                    //}
                }

                //first = receipt.IndexOf("************");
                //if (first > -1)
                //{
                //    //last = receipt.IndexOf('\r', first);
                //    //if (last > -1)
                //    //{
                //    CARDNO = receipt.Substring(first, 16);
                //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                //    {
                //        StreamWriter writer = new StreamWriter(stream);
                //        writer.WriteLine(string.Format(@"Datetime {0} -- print : CardNo-{1}.", DateTime.Now, CARDNO));
                //        writer.Flush();
                //        writer.Close();
                //    }
                //}
                //else
                //{
                //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                //    {
                //        StreamWriter writer = new StreamWriter(stream);
                //        writer.WriteLine(string.Format(@"Datetime {0} -- print : CardNo Linefeed not detected.", DateTime.Now));
                //        writer.Flush();
                //        writer.Close();
                //    }
                //}

                Action<string, string, string, string, string, string, string, string, string, string> handler = ReceiptEvent;
                if (handler != null)
                {
                    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                    {
                        StreamWriter writer = new StreamWriter(stream);
                        writer.WriteLine(string.Format(@"Datetime {0} -- print : Invoking OnReceiptPrintNotification.", DateTime.Now));
                        writer.Flush();
                        writer.Close();
                    }
                    handler(MerchantID, TerminalID, Authorization, AID, APPName, TVR, TSI, ACInfo, AC, CARDNO);
                }
                else
                {
                    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                    {
                        StreamWriter writer = new StreamWriter(stream);
                        writer.WriteLine(string.Format(@"Datetime {0} -- print : OnReceiptPrintNotification not registered.", DateTime.Now));
                        writer.Flush();
                        writer.Close();
                    }
                }

            }

            catch (Exception ex)
            {
                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
                {
                    StreamWriter writer = new StreamWriter(stream);
                    writer.WriteLine(string.Format(@"Datetime {0} -- print : Exception Caught Message {1}.", DateTime.Now, ex.Message));
                    writer.Flush();
                    writer.Close();
                }
            }
            return 0;
        }
示例#2
0
 // override printToDisplay to show display texts
 public override int printToDisplay(int x, int y, int mode, string text, EftTerminal terminal)
 {
     //Console.WriteLine("ECR display:");
     //Console.WriteLine(text);
     using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
     {
         StreamWriter writer = new StreamWriter(stream);
         writer.WriteLine(string.Format(@"Datetime {0} -- printToDisplay : Text = {1}.", DateTime.Now, text));
         writer.Flush();
         writer.Close();
     }
     Action<string> handler = SwipeCardEvent;
     if (handler != null)
     {
         text = text.Replace('\n', ' ');
         handler(text);
     }
     return 0;
 }
示例#3
0
 public override int width(EftTerminal terminal)
 {
     return 24;
 }
示例#4
0
 // override confirmation e.g. to confirm issuing of goods
 public override int confirmation(out ushort confirm, EftTerminal terminal)
 {
     //Console.WriteLine("confirmation");
     using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
     {
         StreamWriter writer = new StreamWriter(stream);
         writer.WriteLine(string.Format(@"Datetime {0} -- Payment Confirmation.", DateTime.Now));
         writer.Flush();
         writer.Close();
     }
     Action handler = PaymentConfirmationEvent;
     if (handler != null)
     {
         handler();
     }
     confirm = (int)ConfirmType.CONFTYPE_GOODS_ISSUE; // CONFIRM_OK
     return 0;    // OK
 }
示例#5
0
 //public override int print(string receipt, EftTerminal terminal)
 //{
 //    //Console.WriteLine("ECR printer:");
 //    //Console.WriteLine(text);
 //    string MerchantID = string.Empty;
 //    string TerminalID = string.Empty;
 //    string Authorization = string.Empty;
 //    string AID = string.Empty;
 //    string APPName = string.Empty;
 //    string TVR = string.Empty;
 //    string TSI = string.Empty;
 //    string ACInfo = string.Empty;
 //    string AC = string.Empty;
 //    string CARDNO = string.Empty;
 //    int first, last;
 //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //    {
 //        StreamWriter writer = new StreamWriter(stream);
 //        writer.WriteLine(string.Format(@"Datetime {0} -- print : Text = {1}.", DateTime.Now, receipt));
 //        writer.Flush();
 //        writer.Close();
 //    }
 //    try
 //    {
 //        // Extracting value of MID
 //        first = receipt.IndexOf("MID:");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("TID: ", first);
 //            if (last > -1)
 //            {
 //                MerchantID = receipt.Substring(first + 4, last - first - 4);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : MID-{1}.", DateTime.Now, MerchantID));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : MID Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of TID
 //        first = receipt.IndexOf("TID: ");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("Batch ID:", first);
 //            if (last > -1)
 //            {
 //                TerminalID = receipt.Substring(first + 5, last - first - 5);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : TID-{1}.", DateTime.Now, TerminalID));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : TID Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of Application
 //        first = receipt.IndexOf("PURCHASE");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("h$", first + 11);
 //            if (last > -1)
 //            {
 //                APPName = receipt.Substring(first + 12, last - first - 13);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : AppName-{1}.", DateTime.Now, APPName));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : PURCHASE Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of AID
 //        first = receipt.IndexOf("AID: ");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("*****", first);
 //            if (last > -1)
 //            {
 //                AID = receipt.Substring(first + 5, last - first - 5);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : AID-{1}.", DateTime.Now, AID));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : AID Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of AUTH in Declined case
 //        //first = receipt.IndexOf("AAC:");
 //        //if (first > -1)
 //        //{
 //        //    //last = receipt.IndexOf('\r', first);
 //        //    //if (last > -1)
 //        //    //{
 //        //    Authorization = receipt.Substring(first + 4, 16);
 //        //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //        //    {
 //        //        StreamWriter writer = new StreamWriter(stream);
 //        //        writer.WriteLine(string.Format(@"Datetime {0} -- print : Auth-{1}.", DateTime.Now, Authorization));
 //        //        writer.Flush();
 //        //        writer.Close();
 //        //    }
 //        //    //}
 //        //    //else
 //        //    //{
 //        //    //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //        //    //    {
 //        //    //        StreamWriter writer = new StreamWriter(stream);
 //        //    //        writer.WriteLine(string.Format(@"Datetime {0} -- print : AAC Linefeed not detected.", DateTime.Now));
 //        //    //        writer.Flush();
 //        //    //        writer.Close();
 //        //    //    }
 //        //    //}
 //        //}
 //        // Extracting value of AUTH in Approved case.
 //        first = receipt.IndexOf("APPROVAL CODE: ");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("********", first);
 //            if (last > -1)
 //            {
 //                Authorization = receipt.Substring(first + 14, 10).Trim();
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : Auth-{1}.", DateTime.Now, Authorization));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : APPROVAL CODE Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of TVR
 //        first = receipt.IndexOf("TVR:");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("TSI:", first);
 //            if (last > -1)
 //            {
 //                TVR = receipt.Substring(first + 4, last - first - 4);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : TVR-{1}.", DateTime.Now, TVR));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : TVR Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of TSI
 //        first = receipt.IndexOf("TSI:");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("AC INFO :", first);
 //            if (last > -1)
 //            {
 //                TSI = receipt.Substring(first + 4, last - first - 4);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : TSI-{1}.", DateTime.Now, TSI));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : TSI Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of AC INFO
 //        first = receipt.IndexOf("AC INFO :");
 //        if (first > -1)
 //        {
 //            last = receipt.IndexOf("*********", first);
 //            if (last > -1)
 //            {
 //                ACInfo = receipt.Substring(first + 9, last - first - 9);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : ACInfo-{1}.", DateTime.Now, ACInfo));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //            else
 //            {
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : ACInfo Linefeed not detected.", DateTime.Now));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        // Extracting value of AC
 //        first = receipt.IndexOf("AC :");
 //        if (first > -1)
 //        {
 //            //last = receipt.IndexOf('\r', first);
 //            //if (last > -1)
 //            //{
 //            AC = receipt.Substring(first + 4, 16);
 //            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //            {
 //                StreamWriter writer = new StreamWriter(stream);
 //                writer.WriteLine(string.Format(@"Datetime {0} -- print : AC-{1}.", DateTime.Now, AC));
 //                writer.Flush();
 //                writer.Close();
 //            }
 //            //}
 //            //else
 //            //{
 //            //    using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //            //    {
 //            //        StreamWriter writer = new StreamWriter(stream);
 //            //        writer.WriteLine(string.Format(@"Datetime {0} -- print : AC Linefeed not detected.", DateTime.Now));
 //            //        writer.Flush();
 //            //        writer.Close();
 //            //    }
 //            //}
 //        }
 //        first = receipt.IndexOf("PURCHASE");
 //        if (first > -1)
 //        {
 //            first = receipt.IndexOf("************");
 //            if (first > -1)
 //            {
 //                //last = receipt.IndexOf('\r', first);
 //                //if (last > -1)
 //                //{
 //                CARDNO = receipt.Substring(first, 16);
 //                using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //                {
 //                    StreamWriter writer = new StreamWriter(stream);
 //                    writer.WriteLine(string.Format(@"Datetime {0} -- print : CardNo-{1}.", DateTime.Now, CARDNO));
 //                    writer.Flush();
 //                    writer.Close();
 //                }
 //            }
 //        }
 //        else
 //        {
 //            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //            {
 //                StreamWriter writer = new StreamWriter(stream);
 //                writer.WriteLine(string.Format(@"Datetime {0} -- print : CardNo Linefeed not detected.", DateTime.Now));
 //                writer.Flush();
 //                writer.Close();
 //            }
 //        }
 //        //Appending Response Code to Authorization
 //        first = receipt.IndexOf("RESPONSE CODE:");
 //        if (first > -1)
 //        {
 //            Authorization += " RC: " + receipt.Substring(first + 14, 10).Trim();
 //            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //            {
 //                StreamWriter writer = new StreamWriter(stream);
 //                writer.WriteLine(string.Format(@"Datetime {0} -- print : Appending RC -{1}.", DateTime.Now, Authorization));
 //                writer.Flush();
 //                writer.Close();
 //            }
 //        }
 //        else
 //        {
 //            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //            {
 //                StreamWriter writer = new StreamWriter(stream);
 //                writer.WriteLine(string.Format(@"Datetime {0} -- print : CardNo Linefeed not detected.", DateTime.Now));
 //                writer.Flush();
 //                writer.Close();
 //            }
 //        }
 //        Action<string, string, string, string, string, string, string, string, string, string> handler = ReceiptEvent;
 //        if (handler != null)
 //        {
 //            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //            {
 //                StreamWriter writer = new StreamWriter(stream);
 //                writer.WriteLine(string.Format(@"Datetime {0} -- print : Invoking OnReceiptPrintNotification.", DateTime.Now));
 //                writer.Flush();
 //                writer.Close();
 //            }
 //            handler(MerchantID, TerminalID, Authorization, AID, APPName, TVR, TSI, ACInfo, AC, CARDNO);
 //        }
 //        else
 //        {
 //            using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //            {
 //                StreamWriter writer = new StreamWriter(stream);
 //                writer.WriteLine(string.Format(@"Datetime {0} -- print : OnReceiptPrintNotification not registered.", DateTime.Now));
 //                writer.Flush();
 //                writer.Close();
 //            }
 //        }
 //    }
 //    catch (Exception ex)
 //    {
 //        using (FileStream stream = new FileStream(@"Artema.log", FileMode.Append, FileAccess.Write))
 //        {
 //            StreamWriter writer = new StreamWriter(stream);
 //            writer.WriteLine(string.Format(@"Datetime {0} -- print : Exception Caught Message {1}.", DateTime.Now, ex.Message));
 //            writer.Flush();
 //            writer.Close();
 //        }
 //    }
 //    return 0;
 //}
 public override int status(EftTerminal terminal)
 {
     return READY;
 }