public static List <AbstractTransaction> GetTransactionList(string accountNumber) { string sql = "SELECT [idTransaction],[idOriginAccount],[idDestinationAccount],[amount],[transactionType],[transactionDate],[beginDate],[endDate],[periodicity]" + " FROM [Transaction] WHERE idOriginAccount= @idAccount"; SqlCommand cmd = new SqlCommand(); cmd.Connection = GetConnexion; cmd.CommandText = sql; cmd.Parameters.Add(new SqlParameter("@idAccount", GetIdAccountFromAccountNumber(accountNumber))); List <AbstractTransaction> newTransactiontList = new List <AbstractTransaction>(); using (DbDataReader reader = cmd.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { String transactionType = reader.GetString(reader.GetOrdinal("transactionType")); AbstractTransaction transaction = AbstractTransaction.Create(transactionType); transaction.IdTransaction = reader.GetInt32(reader.GetOrdinal("idTransaction")); transaction.AccountOrigin = reader.GetInt32(reader.GetOrdinal("idOriginAccount")); transaction.AccountDestination = reader.GetInt32(reader.GetOrdinal("idDestinationAccount")); transaction.Amount = reader.GetDecimal(reader.GetOrdinal("amount")); transaction.TransactionDate = reader.GetDateTime(reader.GetOrdinal("transactionDate")); transaction.StartDate = reader.GetDateTime(reader.GetOrdinal("beginDate")); transaction.EndDate = reader.GetDateTime(reader.GetOrdinal("endDate")); transaction.Periodicity = reader.GetInt32(reader.GetOrdinal("periodicity")); newTransactiontList.Add(transaction); } } return(newTransactiontList); } }
public TransferMoney(AbstractTransaction transaction) { IdOrigin = transaction.AccountOrigin; idDestination = transaction.AccountDestination; Amount = transaction.Amount; IsDone = false; IdTransaction = transaction.IdTransaction; TransferDate = transaction.StartDate; }
public void MakeNewTransaction(decimal amount, AbstractAccount accountOrigin, AbstractAccount accountDestination, DateTime?startDate = null, DateTime?endDate = null, int periodicity = 0) { AbstractTransaction currentTransaction = AbstractTransaction.Create(startDate, endDate); currentTransaction.AccountOrigin = accountOrigin.IdAccount; currentTransaction.AccountDestination = accountDestination.IdAccount; currentTransaction.Amount = amount; currentTransaction.Periodicity = periodicity; currentTransaction.TransactionDate = DateTime.Now; DBQuery.InsertTransaction(currentTransaction); List <TransferMoney> transfertList = currentTransaction.GetTransferts(); Console.WriteLine("We do the transfer"); DBQuery.SaveNewTransferInDb(transfertList); }
public static void InsertTransaction(AbstractTransaction currentTransaction) { string transactionType = currentTransaction.GetType().Name; List <SqlParameter> parameters = new List <SqlParameter> { new SqlParameter("@AccountOrigin", currentTransaction.AccountOrigin), new SqlParameter("@AccountDestination", currentTransaction.AccountDestination), new SqlParameter("@Amount", currentTransaction.Amount), new SqlParameter("@transactionType", transactionType), new SqlParameter("@startDateString", currentTransaction.StartDate), new SqlParameter("@endDateString", currentTransaction.EndDate), new SqlParameter("@Periodicity", currentTransaction.Periodicity) }; String sql = "INSERT INTO[Transaction] " + "(idOriginAccount, idDestinationAccount, amount, transactionType, transactionDate, beginDate, endDate, periodicity) VALUES(@AccountOrigin , @AccountDestination, @Amount,@transactionType, GetDate(), @startDateString, @endDateString,@Periodicity);SELECT CAST(SCOPE_IDENTITY() AS int)"; int transactionId = ExecuteQueryWithID(sql, parameters); currentTransaction.IdTransaction = transactionId; }
public static AbstractTransaction Create(DateTime?startDate = null, DateTime?endDate = null) { AbstractTransaction transaction = null; if (startDate == null) { transaction = InstantTransaction.Create(); } else if (startDate > DateTime.Now && endDate == null) { transaction = DeferredTransaction.CreateDeferred(startDate); } else if (startDate < endDate && startDate > DateTime.Now) { transaction = PermanentTransaction.CreatePermanent(startDate, endDate); } else { IO.DisplayWarning("There is something wrong with the date."); throw new ArgumentException("No transaction can be executed from date " + startDate + " to " + endDate); } return(transaction); }