示例#1
0
        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);
            }
        }
示例#2
0
 public TransferMoney(AbstractTransaction transaction)
 {
     IdOrigin      = transaction.AccountOrigin;
     idDestination = transaction.AccountDestination;
     Amount        = transaction.Amount;
     IsDone        = false;
     IdTransaction = transaction.IdTransaction;
     TransferDate  = transaction.StartDate;
 }
示例#3
0
        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);
        }
示例#4
0
        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;
        }
示例#5
0
        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);
        }