Esempio n. 1
0
        public static void UpdateTMCProcccessedTransaction(string[] uniqueIDs)
        {
            updateSemaphore.WaitOne();

            using (var db = new TmcDataContext())
            {
                try
                {
                    var    paramVal = string.Join("','", uniqueIDs);
                    string sql      = "UPDATE E_TMCREQUEST SET STATUS ='1' WHERE TRANS_DATA IN ('" + paramVal + "')";

                    Console.WriteLine(sql);

                    db.Database.ExecuteSqlCommand(sql);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(nameof(DataManupulation) + " " + ExceptionExtensions.GetFullMessage(ex));
                    logger.LogInfoMessage(nameof(DataManupulation) + " " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + ExceptionExtensions.GetFullMessage(ex));
                }
                finally
                {
                    updateSemaphore.Release();
                }
            }
        }
        public List <E_TRANSACTION> Channel1()
        {
            List <E_TRANSACTION> e_Transaction = new List <E_TRANSACTION>();

            using (TmcDataContext db = new TmcDataContext())
            {
                try
                {
                    var query = from A in db.E_TMCREQUEST
                                join B in db.E_TMCHOST_RESP
                                on new { X = A.TRANS_DATA, Y = A.TRANS_SEQ } equals new { X = B.TRANS_DATA, Y = B.SWITCH_REF } into jointData
                    from joinRecord in jointData.DefaultIfEmpty()
                    where (A.TRANS_DATE > Settings.startdate && A.STATUS == "0" && A.PRO_CODE.StartsWith("13") && Settings.successKeys.Contains(A.RESPONSE_CODE) && A.MTI == "0200" && Settings.targets.Contains(A.TARGET))
                    select new EtransactionViewModel
                    {
                        TRANS_CODE       = "P",
                        CARD_NUM         = A.PAN,
                        TRANSID          = A.STAN,
                        MERCHANT_CODE    = A.CARD_ACC_ID,
                        TRANS_DESCR      = A.CARD_ACC_NAME,
                        RESPONSE_CODE    = A.RESPONSE_CODE,
                        TRANS_AMOUNT     = A.AMOUNT,
                        TRANS_DATE       = A.TRANS_DATE,
                        CHANNELID        = A.TRANS_DATA.Substring(0, 2),
                        TRANS_TYPE       = "1",
                        EXTERNAL_TRANSID = A.TRANS_DATA,
                        UNIQUE_TRANSID   = A.TRANS_DATA,
                        FEE                = A.FEE,
                        CURRENCY           = A.CURRENCY,
                        REVERSAL_KEY       = A.TRANS_KEY,
                        TRANS_NO           = A.TRANS_SEQ,
                        TERMINAL_ID        = A.TERMINAL_ID,
                        CARD_SCHEME        = A.CARD_SCHEME,
                        REFERENCE          = joinRecord.REFERENCE,
                        RESP_RESPONSE_CODE = joinRecord.RESPONSE_CODE
                    };

                    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
                    stopwatch.Start();

                    var tmcreq = query.ToList().Take(Settings.number_of_record_perround);

                    stopwatch.Stop();
                    Console.WriteLine("Inspectingtime for channel 1 completed in " + stopwatch.Elapsed);

                    e_Transaction = Mapper.Map <List <E_TRANSACTION> >(tmcreq);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception from " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + ExceptionExtensions.GetFullMessage(ex));
                    logger.LogDebugMessage(nameof(EtranzactChannelTransaction) + " " + ExceptionExtensions.GetFullMessage(ex));
                }
            }
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name + " " + e_Transaction.Count());
            Console.WriteLine("Channel1 Completed");
            logger.LogInfoMessage(nameof(EtranzactChannelTransaction) + " Channel1 Completed ");

            return(e_Transaction);
        }
        public List <E_TRANSACTION> NonEtzCard1()
        {
            List <E_TRANSACTION> e_Transaction = new List <E_TRANSACTION>();

            using (TmcDataContext db = new TmcDataContext())
            {
                try
                {
                    var query = from A in db.E_TMCREQUEST
                                join B in db.E_TMCNODE
                                on A.TRANS_SEQ equals B.INCON_NAME into jointData
                                from joinRecord in jointData.DefaultIfEmpty()
                                where (A.TRANS_DATE > Settings.startdate && A.STATUS == "0" && (A.TERMINAL_ID.StartsWith("4505") || A.TERMINAL_ID.StartsWith("2030")) && A.RESPONSE_CODE == "00" && A.MTI == "0200" && A.PRO_CODE.StartsWith("00"))
                                select new EtransactionViewModel
                    {
                        TRANS_CODE       = "P",
                        CARD_NUM         = A.PAN,
                        TRANSID          = A.STAN,
                        MERCHANT_CODE    = A.CARD_ACC_ID,
                        TRANS_DESCR      = "Payment to " + A.CARD_ACC_ID + " - " + A.TRANS_DATA.Substring(A.TRANS_DATA.IndexOf("#") + 1),
                        RESPONSE_CODE    = A.RESPONSE_CODE,
                        TRANS_AMOUNT     = A.AMOUNT,
                        TRANS_DATE       = A.TRANS_DATE,
                        CHANNELID        = A.TRANS_DATA.Substring(0, 2),
                        TRANS_TYPE       = "1",
                        EXTERNAL_TRANSID = A.SWITCH_KEY,
                        FEE            = A.FEE,
                        CURRENCY       = A.CURRENCY,
                        REVERSAL_KEY   = A.TRANS_KEY,
                        TRANS_NO       = A.TRANS_SEQ,
                        UNIQUE_TRANSID = A.TRANS_DATA,            //.Substring(0, A.TRANS_DATA.IndexOf("#")),
                        BANK_CODE      = A.TARGET == "NIBBS_TMS" && A.PAN.Substring(1, 1) != "4" ? "032" : joinRecord.AQISSUER_CODE
                    };


                    var tmcreq = query.ToList().Take(Settings.number_of_record_perround);


                    e_Transaction = Mapper.Map <List <E_TRANSACTION> >(tmcreq);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception from " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + ExceptionExtensions.GetFullMessage(ex));
                    logger.LogInfoMessage(nameof(NonEtzCardTransaction) + " " + ExceptionExtensions.GetFullMessage(ex));
                }
            }
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name + " " + e_Transaction.Count());
            Console.WriteLine("NonEtzCard1 Completed");
            logger.LogInfoMessage(nameof(NonEtzCardTransaction) + " NonEtzCard1 Completed ");

            return(e_Transaction);
        }
        public List <E_TRANSACTION> Channel7()
        {
            List <E_TRANSACTION> e_Transaction = new List <E_TRANSACTION>();

            using (TmcDataContext db = new TmcDataContext())
            {
                try
                {
                    var query = from A in db.E_TMCREQUEST
                                join B in db.E_TMCHOST_RESP
                                on new { X = A.TRANS_DATA, Y = A.TRANS_SEQ } equals new { X = B.TRANS_DATA, Y = B.SWITCH_REF } into jointData
                    from joinRecord in jointData.DefaultIfEmpty()
                    where (A.TRANS_DATE > Settings.startdate && A.STATUS == "0" && /* A.card_acc_id LIKE: Bank_Code AND */ A.PRO_CODE.StartsWith("40") && Settings.successKeys.Contains(joinRecord.RESPONSE_CODE) && A.MTI == "0220" && A.CARD_ACC_ID.Trim().Length > 11 && Settings.targets.Contains(A.TARGET))
                    select new EtransactionViewModel
                    {
                        TRANS_CODE       = A.CARD_ACC_ID.EndsWith("D") ? "D" : "U",
                        CARD_NUM         = A.CARD_ACC_ID.EndsWith("D") ? A.PAN : A.BILLER_ID.Substring(A.BILLER_ID.Length - DbFunctions.Reverse(A.BILLER_ID).IndexOf("#")),
                        TRANSID          = A.REFERENCE,
                        MERCHANT_CODE    = A.CARD_ACC_ID.EndsWith("D") ? A.BILLER_ID.Substring(A.BILLER_ID.Length - DbFunctions.Reverse(A.BILLER_ID).IndexOf("#")) : A.PAN,
                        TRANS_DESCR      = A.CARD_ACC_NAME,
                        RESPONSE_CODE    = A.RESPONSE_CODE,
                        TRANS_AMOUNT     = A.AMOUNT,
                        TRANS_DATE       = A.TRANS_DATE,
                        CHANNELID        = A.TRANS_DATA.Substring(0, 2),
                        TRANS_TYPE       = "1",
                        EXTERNAL_TRANSID = A.TRANS_DATA.Substring(3, A.TRANS_DATA.Length / 2),
                        UNIQUE_TRANSID   = A.TRANS_DATA,
                        FEE                = A.FEE,
                        CURRENCY           = A.CURRENCY,
                        REVERSAL_KEY       = A.TRANS_KEY,
                        TRANS_NO           = A.BILLER_ID.Substring(A.BILLER_ID.IndexOf("#"), A.BILLER_ID.Length - DbFunctions.Reverse(A.BILLER_ID).IndexOf("#")),
                        TERMINAL_ID        = A.TERMINAL_ID,
                        CARD_SCHEME        = A.CARD_SCHEME,
                        REFERENCE          = joinRecord.REFERENCE,
                        RESP_RESPONSE_CODE = joinRecord.RESPONSE_CODE
                    };
                    var tmcreq = query.ToList().Take(Settings.number_of_record_perround);
                    e_Transaction = Mapper.Map <List <E_TRANSACTION> >(tmcreq);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception from " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + ExceptionExtensions.GetFullMessage(ex));
                    logger.LogDebugMessage(nameof(EtranzactChannelTransaction) + " " + ExceptionExtensions.GetFullMessage(ex));
                }
            }
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name + " " + e_Transaction.Count());
            logger.LogInfoMessage(System.Reflection.MethodBase.GetCurrentMethod().Name + " " + e_Transaction.Count());
            Console.WriteLine("Channel7 Completed");
            logger.LogInfoMessage(nameof(EtranzactChannelTransaction) + " Channel7 Completed ");

            return(e_Transaction);
        }
        public List <E_TRANSACTION> Channel5()
        {
            List <E_TRANSACTION> e_Transaction = new List <E_TRANSACTION>();

            using (TmcDataContext db = new TmcDataContext())
            {
                try
                {
                    var query = from A in db.E_TMCREQUEST
                                join B in db.E_TMCNODE
                                on A.SRC_NODE equals B.INCON_ID into jointData
                                from joinRecord in jointData.DefaultIfEmpty()
                                where (A.TRANS_DATE > Settings.startdate && A.STATUS == "0" && /* A.card_acc_id LIKE: Bank_Code AND */ A.PRO_CODE.StartsWith("01") && Settings.successKeys.Contains(A.RESPONSE_CODE) && A.MTI == "0200" && Settings.targets.Contains(A.TARGET))
                                select new EtransactionViewModel
                    {
                        TRANS_CODE       = "W",
                        CARD_NUM         = A.CARD_SCHEME + "XXXXXX" + A.PAN.Substring(A.PAN.Length - 4),
                        TRANSID          = A.STAN,
                        MERCHANT_CODE    = joinRecord.AQISSUER_CODE + "ATMWHDR",
                        TRANS_DESCR      = "WITHDRAWAL: " + A.STAN + "000000 :" + A.TERMINAL_ID + ":" + A.CARD_ACC_NAME,
                        RESPONSE_CODE    = A.RESPONSE_CODE,
                        TRANS_AMOUNT     = A.AMOUNT,
                        TRANS_DATE       = A.TRANS_DATE,
                        CHANNELID        = A.TRANS_DATA.Substring(0, 2),
                        TRANS_TYPE       = "1",
                        EXTERNAL_TRANSID = A.REVERSAL_KEY,
                        UNIQUE_TRANSID   = A.TRANS_DATA,
                        FEE                = A.FEE,
                        CURRENCY           = A.CURRENCY,
                        REVERSAL_KEY       = A.TRANS_KEY,
                        TRANS_NO           = A.TRANS_SEQ,
                        TERMINAL_ID        = A.TERMINAL_ID,
                        CARD_SCHEME        = A.CARD_SCHEME,
                        REFERENCE          = A.REFERENCE,
                        RESP_RESPONSE_CODE = ""
                    };
                    var tmcreq = query.ToList().Take(Settings.number_of_record_perround);

                    e_Transaction = Mapper.Map <List <E_TRANSACTION> >(tmcreq);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception from " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + ExceptionExtensions.GetFullMessage(ex));
                    logger.LogDebugMessage(nameof(EtranzactChannelTransaction) + " " + ExceptionExtensions.GetFullMessage(ex));
                }
            }
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name + " " + e_Transaction.Count());
            Console.WriteLine("Channel5 Completed");
            logger.LogInfoMessage(nameof(EtranzactChannelTransaction) + " Channel5 Completed ");

            return(e_Transaction);
        }
Esempio n. 6
0
        //   private static TmcDataContext db = new TmcDataContext();

        public static SettleOption CheckTransactionStatusOnTMC(string UNIQUE_TRANSID, string TRANS_CODE)
        {
            Logger logger = new Logger();

            try
            {
                checkSemaphore.WaitOne();

                Console.WriteLine("Checking Transaction" + UNIQUE_TRANSID);

                using (TmcDataContext tmcData = new TmcDataContext())
                {
                    var reversed = tmcData.E_TMCREQUEST.Where(a => a.TRANS_DATA == UNIQUE_TRANSID && a.MTI == "0420").FirstOrDefault();
                    if (reversed != null)
                    {
                        return(SettleOption.Invalid);
                    }

                    var requestResp = tmcData.E_REQUESTLOG.Where(a => a.transid == UNIQUE_TRANSID).FirstOrDefault();
                    if (requestResp != null)
                    {
                        if (requestResp.response_code != "00" && requestResp.response_code != "0")
                        {
                            return(SettleOption.Invalid);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(nameof(DataManupulation) + " " + ExceptionExtensions.GetFullMessage(ex));
                logger.LogInfoMessage(nameof(DataManupulation) + " " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + ExceptionExtensions.GetFullMessage(ex));
                return(SettleOption.Valid);
            }

            finally
            {
                checkSemaphore.Release();
            }


            return(SettleOption.Valid);
        }
        public List <E_TRANSACTION> MastercardTrx1()
        {
            var src_node_value = new int[] { 210000059, 510000059 };

            List <E_TRANSACTION> e_Transaction = new List <E_TRANSACTION>();

            using (TmcDataContext db = new TmcDataContext())
            {
                try
                {
                    var query = from A in db.E_TMCREQUEST
                                join B in db.E_TMCHOST_RESP
                                on new { X = A.TRANS_DATA, Y = A.TRANS_SEQ } equals new { X = B.TRANS_DATA, Y = B.SWITCH_REF } into jointData
                    from joinRecord in jointData.DefaultIfEmpty()
                    join C in db.E_TMCNODE
                    on A.TARGET_NODE equals C.INCON_ID into jointData2
                    from joinRecord2 in jointData2.DefaultIfEmpty()
                    where (A.TRANS_DATE > Settings.startdate && A.STATUS == "0" && src_node_value.Contains(A.SRC_NODE) && A.TARGET_NODE == 210000049 && Settings.successKeys.Contains(joinRecord.RESPONSE_CODE) && A.MTI == "0200" && A.AMOUNT > 0 && A.REVERSAL_KEY == "" && A.TRANS_DATA != "")

                    select new EtransactionViewModel
                    {
                        TRANS_CODE       = "F",
                        CARD_NUM         = joinRecord2.ISSUER_CODE + A.PAN,
                        TRANSID          = joinRecord.REFERENCE,
                        TRANS_NO         = joinRecord.STAN,
                        MERCHANT_CODE    = A.CARD_ACC_ID,
                        TRANS_DESCR      = A.CARD_ACC_NAME,
                        RESPONSE_CODE    = A.RESPONSE_CODE,
                        TRANS_AMOUNT     = A.AMOUNT,
                        TRANS_DATE       = A.TRANS_DATE,
                        CHANNELID        = A.TRANS_DATA.Substring(0, 2),
                        TRANS_TYPE       = "1",
                        EXTERNAL_TRANSID = A.SWITCH_KEY,
                        UNIQUE_TRANSID   = A.TRANS_DATA,
                        FEE                = A.FEE,
                        FEE2               = joinRecord.FEE,
                        CURRENCY           = A.CURRENCY,
                        REVERSAL_KEY       = A.ACCT_ID1,
                        TERMINAL_ID        = A.TERMINAL_ID,
                        CARD_SCHEME        = A.PRO_CODE,
                        RESP_RESPONSE_CODE = joinRecord.RESPONSE_CODE,
                    };


                    var tmcreq = query.ToList().Take(Settings.number_of_record_perround);

                    foreach (EtransactionViewModel item in tmcreq)
                    {
                        if (item.CARD_SCHEME.Substring(0, 2) == "00")
                        {
                            item.TRANS_DESCR = "POS:" + item.REVERSAL_KEY + ':' + item.TRANSID + ':' + item.TERMINAL_ID + ':' + item.TRANS_DESCR;

                            item.MERCHANT_CODE = "044MSTHLD4";
                            item.TRANS_CODE    = "P";
                            item.CHANNELID     = "03";
                        }
                        else if (item.CARD_SCHEME.Substring(0, 2) == "01")
                        {
                            item.TRANS_DESCR = "ATM WTHDRWL:" + item.REVERSAL_KEY + ':' + item.TRANSID + ':' + item.TERMINAL_ID + ':' + item.TRANS_DESCR;

                            if (item.MERCHANT_CODE == "044MSTHLD1")
                            {
                                item.MERCHANT_CODE = "044MSTHLD3";
                                item.TRANS_CODE    = "P";
                                item.CHANNELID     = "04";
                            }
                            else if (item.MERCHANT_CODE != "044MSTHLD1" && item.TERMINAL_ID.Substring(0, 4) == "1044")
                            {
                                item.MERCHANT_CODE = "0443241211";
                                item.TRANS_CODE    = "W";
                                item.CHANNELID     = "04";
                            }

                            else if (item.MERCHANT_CODE != "044MSTHLD1" && item.TERMINAL_ID.Substring(0, 4) != "1044")
                            {
                                item.MERCHANT_CODE = "044MSTHLD3";
                                item.TRANS_CODE    = "P";
                                item.CHANNELID     = "04";
                            }

                            item.FEE = int.Parse(item.FEE2.Substring(1)) / 100;
                        }
                    }

                    e_Transaction = Mapper.Map <List <E_TRANSACTION> >(tmcreq);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception from " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + ExceptionExtensions.GetFullMessage(ex));
                    logger.LogDebugMessage(nameof(MastercardTransactions) + " " + ExceptionExtensions.GetFullMessage(ex));
                }
            }
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name + " " + e_Transaction.Count());
            Console.WriteLine("Channel4 Completed");
            logger.LogInfoMessage(nameof(MastercardTransactions) + " Channel4 Completed ");

            return(e_Transaction);
        }