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); }
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); } }
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); }
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); }
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); }
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); }