public Topup[] SaveData() { int result = 0; int rc; Topup[] topups = Topup.GetTopups(new TopupParameters { OTP = SenderOTP }, out rc); Topup topup = topups[0]; List <Topup> t = new List <Topup>(); if (topup.Status == "0") { if (topup.Amount > Amount) { using (SqlCommand cmd = new SqlCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = new SqlConnection(cstr.con); cmd.Connection.Open(); cmd.CommandText = "SaveTransferData"; if (SenderOTP != null) { cmd.Parameters.AddWithValue("senderOTP", SenderOTP); } if (MeterId != null) { cmd.Parameters.AddWithValue("meter_id", MeterId); } if (Amount != null) { cmd.Parameters.AddWithValue("amount", Amount); } SqlParameter idParam = cmd.Parameters.Add("@id", SqlDbType.Int); idParam.Direction = ParameterDirection.InputOutput; SqlParameter resultParam = cmd.Parameters.Add("@result", SqlDbType.Int); resultParam.Direction = ParameterDirection.InputOutput; idParam.Value = this.Id; int c = cmd.ExecuteNonQuery(); this.Id = Convert.ToInt32(idParam.Value); result = Convert.ToInt32(resultParam.Value); cmd.Connection.Close(); decimal?amount = topup.Amount - Amount; Topup topup1 = new Topup(null, topup.MeterId, amount, topup.SerialNUM); topup1.SaveDataTransfered(); Topup topup2 = new Topup(null, MeterId, Amount, topup.SerialNUM); topup2.SaveDataTransfered(); Topup topupnotvalid = new Topup(topup.Id); topupnotvalid.SaveDataTransfered(); t.Add(topup1); t.Add(topup2); } } } return(t.ToArray()); }
public static Topup[] GetTopups(TopupParameters parameters, out int rowsCount) { List <Topup> l = new List <Topup>(); using (SqlCommand cmd = new SqlCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = new SqlConnection(cstr.con); cmd.Connection.Open(); cmd.CommandText = "GetTopups"; cmd.Parameters.AddWithValue("@card_serialnum", parameters.SerialNUM); cmd.Parameters.AddWithValue("@status", parameters.Status); cmd.Parameters.AddWithValue("@otp", parameters.OTP); cmd.Parameters.AddWithValue("@meter_id", parameters.MeterId); SqlDataReader r = cmd.ExecuteReader(); if (r.HasRows) { while (r.Read()) { Topup c = new Topup(); if (r["id"] != DBNull.Value) { c.Id = Convert.ToInt32(r["id"]); } if (r["meter_id"] != DBNull.Value) { c.MeterId = Convert.ToString(r["meter_id"]); } if (r["amount"] != DBNull.Value) { c.Amount = Convert.ToDecimal(r["amount"]); } if (r["card_serialnum"] != DBNull.Value) { c.SerialNUM = Convert.ToString(r["card_serialnum"]); } if (r["otp"] != DBNull.Value) { c.OTP = Convert.ToInt32(r["otp"]); } // if (r["otp"] != DBNull.Value) c.OTP = Convert.ToString(r["otp"]); if (r["chargeDate"] != DBNull.Value) { c.ChargeDate = Convert.ToDateTime(r["chargeDate"]); } if (r["activationDate"] != DBNull.Value) { c.ActivationDate = Convert.ToDateTime(r["activationDate"]); } if (r["status"] != DBNull.Value) { c.Status = Convert.ToString(r["status"]); } l.Add(c); } } r.Close(); cmd.Connection.Close(); rowsCount = l.Count; } return(l.ToArray()); }