public void Withdraw() { var utility = new Utility(); Console.WriteLine("Bạn muốn gửi bao nhiêu tiền :"); var amount = utility.getDecimal(); Console.WriteLine("Nội dung giao dịch:"); var content = Console.ReadLine(); SPHTransation sphTransation = new SPHTransation() { Id = Guid.NewGuid().ToString(), Content = content, Amount = amount, SenderAccountNumber = Program.currentSphLoggedAccount.AccountNumber, RecevierAccountNumber = Program.currentSphLoggedAccount.AccountNumber, Type = SPHTransation.TransactionType.WITHDRAW, Status = SPHTransation.ActiveStatus.DONE }; if (model.Deposit(Program.currentSphLoggedAccount, sphTransation)) { Console.WriteLine("Giao dịch thành công"); } else { Console.WriteLine("Giao dịch không thành công"); } }
public bool Deposit(SPHAccount currentSphLoggedAccount, SPHTransation sphTransation) { DbConnection.Instance().OpenConnection(); var transaction = DbConnection.Instance().Connection.BeginTransaction(); try { var queryCheckBalance = "select balance from `account` where accountNumber = @accountNumber and status = 1"; var command = new MySqlCommand(queryCheckBalance, DbConnection.Instance().Connection); command.Parameters.AddWithValue("@accountNumber", Program.currentSphLoggedAccount.AccountNumber); var reader = command.ExecuteReader(); decimal currentBalance = 0; if (reader.Read()) { currentBalance = reader.GetDecimal("balance"); } if (sphTransation.Type == SPHTransation.TransactionType.WITHDRAW && currentBalance < sphTransation.Amount) { Console.WriteLine("Số dư tài khoản hiện"); } if (sphTransation.Type == SPHTransation.TransactionType.WITHDRAW) { currentBalance -= sphTransation.Amount; } if (sphTransation.Type == SPHTransation.TransactionType.DEPOSIT) { currentBalance += sphTransation.Amount; } var updateCurrentBalance = 0; var updateBalance = "update `account` set balance =@balance where accountNumber =@accountNumber and status =1"; var updatecmd = new MySqlCommand(updateBalance, DbConnection.Instance().Connection); updatecmd.Parameters.AddWithValue("@balance", currentBalance); updatecmd.Parameters.AddWithValue("@accountNumber", Program.currentSphLoggedAccount.AccountNumber); updateCurrentBalance = updatecmd.ExecuteNonQuery(); } catch (Exception e) { transaction.Rollback(); throw; } finally { DbConnection.Instance().CloseConnection(); } return(false); }
public void saveDB(SPHTransation transation) { var cnnString = string.Format("Server={0};Database={1};Uid={2};Pwd={3};SslMode=none", server, nameDB, userName, password); var con = new MySqlConnection(); con.Open(); MySqlCommand msd = new MySqlCommand( "insert into students(id,amount,content,senderAccountNumber,recevierAccountNumber,type,createAt,status) " + " values(@id, @amount, @content,@senderAccountNumber,@senderAccountNumber,@type,@createAt,@status)", con); msd.Parameters.AddWithValue("@id", transation.Id); msd.Parameters.AddWithValue("@amount", transation.Amount); msd.Parameters.AddWithValue("@content", transation.Content); msd.Parameters.AddWithValue("@senderAccountNumber", transation.SenderAccountNumber); msd.Parameters.AddWithValue("@recevierAccountNumber", transation.RecevierAccountNumber); msd.Parameters.AddWithValue("@type", transation.Type); msd.Parameters.AddWithValue("@createAt", transation.CreateAt); msd.Parameters.AddWithValue("@status", transation.Status); msd.ExecuteNonQuery(); con.Clone(); }