示例#1
0
        public void SaveTransactionToSource(Transaction transaction)
        {
            Account account = accountDataService.GetAccountByAccountId(transaction.SourceAccountId);

            account.transactions.Add(transaction);
            MasterBank.SaveCurrentState();
        }
示例#2
0
        public void SaveTransactionToDestination(Transaction transaction)
        {
            Bank    DestinationBank    = MasterBank.GetBankById(transaction.DestinationBankId);
            Account destinationAccount = accountDataService.GetAccountByAccountId(transaction.DestinationAccountId);

            destinationAccount.transactions.Add(transaction);
            MasterBank.bankList[MasterBank.bankList.FindIndex(bank => bank.BankId == transaction.DestinationBankId)] = DestinationBank;
            MasterBank.SaveCurrentState();
        }
示例#3
0
        public void ShowHomeMenuOptions()
        {
            MasterBank.GetBanksFromFile();
            switch (EnumHelper.ConvertInEnum <BankUiOption>(bankUI.MainView()))
            {
            case BankUiOption.SetupNewBank:
                bool Result = bankUI.CreateNewBankDisplay();
                //
                Thread.Sleep(1000);
                if (Result == false)
                {
                }
                else
                {
                    MasterBank.currentBankIndex = MasterBank.bankList.Count - 1;
                    adminUI.CreateDefaultAdminDisplay();
                }
                ShowHomeMenuOptions();
                break;

            case BankUiOption.LoginInBank:
                if (File.Exists("BankData.data"))
                {
                    int choice = int.Parse(bankUI.SelectBankPortalMenu());
                    if (choice <= MasterBank.bankList.Count())
                    {
                        MasterBank.currentBankIndex = choice - 1;
                        MasterBank.currentBank      = MasterBank.bankList[MasterBank.currentBankIndex];
                        BankLoginOptions();
                    }
                    else
                    {
                        DisplayHelper.PrintTextAtXY(60, 22, "WRONG CHOICE ENTERED");
                        Thread.Sleep(1000);
                        ShowHomeMenuOptions();
                    }
                }
                else
                {
                    DisplayHelper.PrintTextAtXY(65, 20, "YOU MUST CREATE A BANK FIRST");
                    Thread.Sleep(1000);
                    ShowHomeMenuOptions();
                }
                break;

            case BankUiOption.ExitApplication:
                Thread.Sleep(1000);
                Environment.Exit(0);
                break;

            default:
                DisplayHelper.PrintTextAtXY(60, 22, "WRONG CHOICE ENTERED");
                Thread.Sleep(1000);
                ShowHomeMenuOptions();
                break;
            }
        }
示例#4
0
        public void OtherBankTransferDisplay(string type)
        {
            Console.Clear();
            InputForm.OtherTransferFundField();
            double amount               = Validator.ValidatorHelper.DoubleValidator(40, 10);
            string destinationBankId    = Validator.ValidatorHelper.StringValidator(40, 12);
            string destinationAccountId = Validator.ValidatorHelper.StringValidator(40, 14);

            accountService.OtherBankTransfer(amount, destinationAccountId, MasterBank.GetBankById(destinationBankId), type);
        }
 public void AddBank(MasterBank banksList, Bank bank, List <Currency> currencies)
 {
     banksList.Banks.Add(new Bank()
     {
         Id                 = bank.Id,
         Name               = bank.Name,
         Currency           = bank.Currency,
         IMPSToSameBank     = bank.IMPSToSameBank,
         RTGSToSameBank     = bank.RTGSToSameBank,
         IMPSToOtherBanks   = bank.IMPSToOtherBanks,
         RTGSToOtherBanks   = bank.IMPSToOtherBanks,
         AcceptedCurrencies = currencies
     });
 }
示例#6
0
        public string TransferFunds(string senderId, string toBankId, string receiverId, int amount, string frombankId, MasterBank banksModel)
        {
            Bank    frombankModel = banksModel.Banks.Find(s => s.Id == frombankId);
            Bank    tobankModel   = banksModel.Banks.Find(s => s.Id == toBankId);
            Account senderAccount = banksModel.Banks.Find(s => s.Id == frombankId).Accounts.Find(s => s.Id == senderId);

            if (frombankModel.Accounts.FindIndex(s => s.Id == senderId) != -1 && tobankModel.Accounts.FindIndex(s => s.Id == receiverId) != -1)
            {
                if (frombankModel.Accounts.Find(s => s.Id == senderId).Balance < amount)
                {
                    return("Insufficient Funds to send");
                }
                else
                {
                    frombankModel.Accounts.Find(s => s.Id == senderId).Balance -= amount;

                    tobankModel.Accounts.Find(s => s.Id == receiverId).Balance += amount;

                    string fromTransacId = IdGenerator.CreateTransacId(frombankId, frombankModel.Accounts.Find(s => s.Id == senderId).User.Name);

                    transactionService.AddTransaction(fromTransacId, string.Format("Transfer {0} from {1} to {2}", amount, senderId, receiverId), senderId, receiverId, amount, (TransactionType)Enum.Parse(typeof(TransactionType), "Transfer"), frombankId, toBankId, senderAccount);

                    return("Transfer Successful");
                }
            }
            return("Entered User doesnt exit to transfer");
        }
示例#7
0
 public App()
 {
     banksRepo = new MasterBank();
 }
示例#8
0
 internal MasterForm(MasterBank master)
 {
     masterBank = master;
     mainForm   = new Form1(this);
 }