/// <summary> /// To Check the Average & max Transaction Amount with history /// </summary> /// <param name="transAmount"></param> /// <param name="data"></param> /// <returns></returns> private decimal validateAvgMaxTransAmount(decimal transAmount, SearchTransactionOnFraudResponse data) { if (data.AverageTransAmount != 0 && transAmount <= data.AverageTransAmount) { return(0.02M); } else if (data.AverageTransAmount != 0 && transAmount > data.AverageTransAmount) { return(1.0M); } else if (data.AverageTransAmount == 0 && data.MaxTransAmount == 0) { return(0.5M); } return(0.1M); }
public SearchTransactionOnFraudResponse SearchTransactionOnFraud(string cardNo, string transactionId, DateTime FilteringTimeOnwards, string currentIpAddress) { SearchTransactionOnFraudResponse response = new SearchTransactionOnFraudResponse(); using (SqlCommand cmd = new SqlCommand()) { con.Open(); cmd.Connection = con; cmd.CommandText = "SearchTransactionOnFraud"; cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter da = new SqlDataAdapter(); DataSet ds = new DataSet(); cmd.Parameters.AddWithValue("@cardNo", cardNo).Direction = ParameterDirection.Input; cmd.Parameters.AddWithValue("@transactionId", transactionId).Direction = ParameterDirection.Input; cmd.Parameters.AddWithValue("@TransDateFilterFrom", FilteringTimeOnwards).Direction = ParameterDirection.Input; cmd.Parameters.AddWithValue("@IpAddress", currentIpAddress).Direction = ParameterDirection.Input; da = new SqlDataAdapter(cmd); da.Fill(ds); con.Close(); var tab = ds.Tables[0]; if (tab != null) { var avg = Convert.ToString(tab.Rows[0]["Avg"]); if (!string.IsNullOrEmpty(avg)) { response.AverageTransAmount = decimal.Parse(avg); } var max = Convert.ToString(tab.Rows[0]["max"]); if (!string.IsNullOrEmpty(max)) { response.MaxTransAmount = decimal.Parse(max); } } tab = ds.Tables[1]; if (tab != null) { var cnt = Convert.ToString(tab.Rows[0]["cnt"]); if (!string.IsNullOrEmpty(cnt)) { response.MaxTransCount = decimal.Parse(cnt); } } tab = ds.Tables[2]; if (tab != null) { foreach (DataRow existingRow in tab.Rows) { var record = new Records(); record.IpAddress = Convert.ToString(existingRow["IPAddress"]); record.Count = int.Parse(Convert.ToString(existingRow["cnt"])); response.IpLevelTransactions.Add(record); } } tab = ds.Tables[3]; if (tab != null) { foreach (DataRow existingRow in tab.Rows) { response.IpFradTransactions.Add(ReadRow(existingRow)); } } } return(response); }