Exemple #1
0
        public static int ArchiveTransaction(long refId)
        {
            var ret = 0;

            using (SqlConnection connection = new SqlConnection(AppConfig.DailyTranConnection))
            {
                string query = "MAC_sp_updateTransactionHistory";
                try
                {
                    SqlCommandBuilder cb = default(SqlCommandBuilder);

                    connection.Open();
                    using (SqlCommand command = new SqlCommand(query, connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@refId", SqlDbType.BigInt);
                        command.Parameters["@refId"].Value = refId;
                        var returnPar = command.Parameters.Add("@ReturnVal", SqlDbType.Int);
                        returnPar.Direction = ParameterDirection.ReturnValue;
                        command.ExecuteNonQuery();
                        return(Convert.ToInt16(returnPar.Value));
                    }
                }
                catch (Exception ex)
                {
                    MyHelperClass.WriteLog(ex);
                }
            }
            return(ret);
        }
Exemple #2
0
        static void PullTransactions(int threadId)
        {
            try
            {
                Console.WriteLine("this is thread Id " + threadId);
                Console.WriteLine("====================== ");
                var dt = TranAccess.PullPendingTran(threadId);
                foreach (DataRow dr in dt.Rows)
                {
                    var stanVal  = "";
                    var stanDate = new DateTime();

                    //stanVal = DateTime.Now.ToString("yyMMddHH") + DateTime.Now.ToString("mmss");
                    stanVal = MyHelperClass.GenerateRandomString(4) + DateTime.Now.ToString("ddHHmmss");


                    if (String.IsNullOrEmpty(dr["value_date"].ToString()))
                    {
                        stanDate = DateTime.Now;
                    }
                    else
                    {
                        stanDate = Convert.ToDateTime(dr["value_date"].ToString());
                    }
                    //MyHelperClass.WriteLog(stanVal + " for " + dr["refId"].ToString() + "== ");
                    LogFileWrite(stanVal + " for " + dr["refId"].ToString() + "== ", threadId);
                    var up = TranAccess.UpdateStan(Convert.ToInt64(dr["refId"].ToString()), stanVal, stanDate);
                    // post to service
                    var identifier = dr["transaction_type"].ToString();
                    if (identifier == null || identifier == "")
                    {
                        identifier = identifier.Substring(0, 3);
                    }
                    var debitAccount          = dr["debit_account_number"].ToString();
                    var creditAccount         = dr["credit_account_number"].ToString();
                    var currency              = dr["currency"].ToString();
                    var transactionAmount     = Convert.ToDouble(dr["transaction_amount"].ToString());
                    var tranParticular2       = dr["transaction_particular2"].ToString();
                    var transactionRefernce   = dr["transaction_reference"].ToString();
                    var transactionParticular = dr["transaction_particular1"].ToString();
                    var originalRefNum        = dr["original_ref_num"].ToString();

                    var res    = PostTransaction(debitAccount, creditAccount, currency, transactionAmount, stanDate, stanVal, tranParticular2, transactionRefernce, transactionParticular, identifier, threadId, originalRefNum);
                    var result = res.Split('|');
                    var fi     = TranAccess.UpdateAfterPost(Convert.ToInt64(dr["refId"].ToString()), "Y", result[1].Replace("::", "").TrimStart('7'), result[0], result[1]);
                    LogFileWrite(result[0] + "==" + result[1] + "==" + result[2] + "==", threadId);
                }
            }
            catch (Exception e)
            {
                MyHelperClass.WriteLog(e);
                LogFileWrite(e.Message, threadId);
            }
        }
Exemple #3
0
        public static int UpdateAfterPost(long refId, string postedFlag, string tranId, string respCode, string message)
        {
            var ret = 0;

            using (SqlConnection connection = new SqlConnection(AppConfig.DailyTranConnection))
            {
                string query = "MAC_sp_updateFinalTransactions";
                try
                {
                    SqlCommandBuilder cb = default(SqlCommandBuilder);

                    connection.Open();
                    using (SqlCommand command = new SqlCommand(query, connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@refId", SqlDbType.BigInt);
                        command.Parameters["@refId"].Value = refId;
                        command.Parameters.Add("@postedFlag", SqlDbType.VarChar);
                        command.Parameters["@postedFlag"].Value = postedFlag;
                        command.Parameters.Add("@tranId", SqlDbType.VarChar);
                        command.Parameters["@tranId"].Value = tranId;



                        command.Parameters.Add("@respCode", SqlDbType.VarChar);
                        command.Parameters["@respCode"].Value = respCode;
                        command.Parameters.Add("@message", SqlDbType.VarChar);
                        command.Parameters["@message"].Value = message;

                        var returnPar = command.Parameters.Add("@ReturnVal", SqlDbType.Int);
                        returnPar.Direction = ParameterDirection.ReturnValue;
                        command.ExecuteNonQuery();
                        return(Convert.ToInt16(returnPar.Value));
                    }
                }
                catch (Exception ex)
                {
                    MyHelperClass.WriteLog(ex);
                }
            }
            return(ret);
        }
Exemple #4
0
        public static DataTable PullPendingTran(int threadId)
        {
            var dt = new DataTable();
            var da = new SqlDataAdapter();
            var ds = new DataSet();

            //  bool OpnrtnStatus = false;

            using (SqlConnection connection = new SqlConnection(AppConfig.DailyTranConnection))
            {
                //(Real Live Query)
                string query = "MAC_sp_getPendingTransactions";

                try
                {
                    SqlCommandBuilder cb = default(SqlCommandBuilder);

                    connection.Open();
                    using (SqlCommand command = new SqlCommand(query, connection))
                    {
                        command.CommandType = System.Data.CommandType.StoredProcedure;
                        command.Parameters.Add("@threadId", SqlDbType.Int);
                        command.Parameters["@threadId"].Value = threadId;
                        da.SelectCommand = command;
                        cb = new SqlCommandBuilder(da);
                        da.Fill(ds);
                        //da.Fill(dt)
                        dt = ds.Tables[0];

                        return(dt);
                    }
                }
                catch (Exception ex)
                {
                    MyHelperClass.WriteLog(ex);
                }
            }
            return(dt);
        }
Exemple #5
0
        public static int UpdateStan(long refId, string stan, DateTime sysDate)
        {
            var ret = 0;

            using (SqlConnection connection = new SqlConnection(AppConfig.DailyTranConnection))
            {
                //(Real Live Query)
                string query = "MAC_sp_updateStanTransactions";

                try
                {
                    SqlCommandBuilder cb = default(SqlCommandBuilder);

                    connection.Open();
                    using (SqlCommand command = new SqlCommand(query, connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@refId", SqlDbType.BigInt);
                        command.Parameters["@refId"].Value = refId;
                        command.Parameters.Add("@stan", SqlDbType.VarChar);
                        command.Parameters["@stan"].Value = stan;
                        command.Parameters.Add("@sysdate", SqlDbType.DateTime);
                        command.Parameters["@sysdate"].Value = sysDate;

                        var returnPar = command.Parameters.Add("@ReturnVal", SqlDbType.Int);
                        returnPar.Direction = ParameterDirection.ReturnValue;
                        command.ExecuteNonQuery();
                        return(Convert.ToInt16(returnPar.Value));
                    }
                }
                catch (Exception ex)
                {
                    MyHelperClass.WriteLog(ex);
                }
            }
            return(ret);
        }
Exemple #6
0
        public static string PostTransaction(string debitAccount, string creditAccount, string currency, double amount, DateTime transValueDate, string stan, string sessionId, string tranRemarks, string appDesc, string identifier, int threadId, string tranRef)
        {
            var bankId       = ConfigurationManager.AppSettings["bankId"];
            var controllerId = ConfigurationManager.AppSettings["controllerId"];
            var ipAddress    = ConfigurationManager.AppSettings["finacleIp"];
            // live "10.0.0.133"; // test "10.0.33.13";
            var ntranDate = transValueDate;

            // var te = amount.ToString();
            //amount = amount * 100;
            if (ConfigurationManager.AppSettings["Environment"] == "Test")
            {
                ntranDate = Convert.ToDateTime(ConfigurationManager.AppSettings["TestDate"]);
            }

            // transValueDate; //Convert.ToDateTime("2015-07-27 00:00:00");
            var port = Convert.ToInt32(ConfigurationManager.AppSettings["finaclePort"]);
            // live 47002; // test 48027; //
            Response resCharge;
            var      uniqueId = stan; //MyHelperClass.GenerateRandomString(8) + DateTime.Now.Date.Second + rnd.Next();
            var      xFTran   = new FundTransfer(controllerId, ipAddress, port);

            try
            {
                //xFTran.ValueDate = transValueDate;
                xFTran.ValueDate = ntranDate;
                xFTran.Field41CardAcceptorTerminalId = "000000003REC9991";

                xFTran.Field2PAN = "9890190000000000000";
                switch (currency)
                {
                case "NGN":
                    xFTran.Currency = new Currency(Currency.CURRENCY_REF.NGN);
                    break;

                case "USD":
                    xFTran.Currency = new Currency(Currency.CURRENCY_REF.USD);
                    break;

                case "GBP":
                    xFTran.Currency = new Currency(Currency.CURRENCY_REF.GBP);
                    break;

                case "EUR":
                    xFTran.Currency = new Currency(Currency.CURRENCY_REF.EUR);
                    break;
                }

                xFTran.OptionalFieldData = "70NGND000000000000000000000001D0000000000000000NGN"; //Field46

                xFTran.Field37RetrievalReferenceNumber = stan;
                xFTran.Field42CardAcceptorTerminalCode = "RECONCILIATION1";
                xFTran.Field124InfoText = identifier;

                xFTran.Field125OptionalField1 = sessionId;
                xFTran.Field126OptionalField2 = tranRemarks;
                xFTran.Field127OptionalField3 = tranRef;
                resCharge = xFTran.Commit(amount, debitAccount, creditAccount, appDesc, uniqueId);
                MyHelperClass.WriteLog(xFTran.Diagnosis.ToString());
            }
            catch (Exception ex)
            {
                // MyHelperClass.WriteLog(ex);
                LogFileWrite(ex.Message, threadId);
                return("-99|Error: " + ex.Message + "|" + uniqueId);
            }
            if (resCharge != Response.TransactionApproved)
            {
                return("-1|" + resCharge + "|" + uniqueId);
            }
            return("0|" + Right(xFTran.Diagnosis.Trim(), 9) + "|" + uniqueId);
        }