public AccountsController(Project1Context context, UserManager <YABUser> userManager, ILogger <AccountsController> logger)
 {
     _userManager = userManager;
     _logger      = logger;
     _context     = context;
     _arepo       = new AccountsRepo(context);     //TODO Remove
     _trepo       = new TransactionsRepo(context); //TODO Remove
     _bl          = new BL(context);
 }
示例#2
0
        private void btnInsertMeeting_Click(object sender, EventArgs e)
        {
            Meeting m = new Meeting();

            m.MeetingName = tbMeeting.Text;
            TransactionsRepo tr = new TransactionsRepo();

            tr.InsertMeeting(m);
            MessageBox.Show("Test");
        }
        public string TransferFunds(TransferFundsModel transferFundsModel)
        {
            var saAccountNumber = transferFundsModel.SaAccountNumber;
            var daAccountNumber = transferFundsModel.DaAccountNumber;
            var amount          = transferFundsModel.Amount;

            var accountRepo     = new AccountsRepo();
            var transactionRepo = new TransactionsRepo
            {
                Entity = accountRepo.Entity
            };

            var saBankAccount = accountRepo.GetWhitdrawnAccount(transferFundsModel.Username, saAccountNumber);
            var daBankAccount = accountRepo.GetAccountByAccountNo(daAccountNumber);

            if (saBankAccount == null)
            {
                return("Invalid Sender Account");
            }
            if (daBankAccount == null || saBankAccount == daBankAccount)
            {
                return("Make Sure That Accounts Are Valid");
            }
            if (!IsSufficientFunds(saBankAccount, amount))
            {
                return("Insufficient Funds");
            }
            if (saBankAccount.AccountType_Fk.Equals("Fixed") || daBankAccount.AccountType_Fk.Equals("Fixed"))
            {
                return("Cannot Transfer To or From a Fixed Account");
            }

            var saTransaction = new Transaction();
            var daTransaction = new Transaction();

            //TODO make Transactions cleaner
            saTransaction.Currency_Fk           = saBankAccount.Currency_Fk;
            saTransaction.AccountNo_Fk          = saBankAccount.AccountNumber;
            saTransaction.Amount                = -amount;
            saTransaction.Details               = string.Concat("Transfer To Account ", daBankAccount.AccountNumber);
            saTransaction.Transaction_Timestamp = DateTime.Now;

            saBankAccount.Balance -= amount;

            daTransaction.Currency_Fk           = daBankAccount.Currency_Fk;
            daTransaction.AccountNo_Fk          = daBankAccount.AccountNumber;
            daTransaction.Details               = string.Concat("Transfer From Account ", saBankAccount.AccountNumber);
            daTransaction.Transaction_Timestamp = DateTime.Now;

            if (IsAccountsSameCurrency(saBankAccount, daBankAccount))
            {
                daTransaction.Amount   = amount;
                daBankAccount.Balance += amount;
            }
            if (!IsAccountsSameCurrency(saBankAccount, daBankAccount))
            {
                var convertedAmount = ConvertCurrency(saBankAccount.Currency_Fk, daBankAccount.Currency_Fk, amount);

                daTransaction.Amount   = convertedAmount;
                daBankAccount.Balance += convertedAmount;
            }

            transactionRepo.AddTransaction(saTransaction);
            transactionRepo.AddTransaction(daTransaction);

            accountRepo.UpdateAccount(saBankAccount);
            accountRepo.UpdateAccount(daBankAccount);

            return("Success");
        }