public void Execute() { Console.Clear(); AccountManager accountManager = AccountManagerFactory.Create(); Console.Write("Enter an account number: "); string accountNumber = Console.ReadLine(); string deposit = "deposit"; decimal amount = ConsoleIO.GetNumber(deposit); AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit completed!"); Console.WriteLine($"Account Number: {response.Account.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance:c}"); Console.WriteLine($"Amount deposited: {response.Amount:c}"); Console.WriteLine($"New balance: {response.Account.Balance:c}"); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public async Task <IActionResult> Deposit(CreateDepositRequest request, CancellationToken token) { _logger.LogInformation($"{nameof(AccountController)}.{nameof(Deposit)} - {request}"); if (!ModelState.IsValid) { return(BadRequest($"Problem with CreateDepositRequest")); } if (!Currencies.IsValid(request.Currency.ToUpperInvariant())) { return(BadRequest($"Currency symbol entered is invalid!")); } CreateDeposit deposit = await CreateDepositFromLocalCurrency(request, token); if (!_options.BaseCurrency.Equals(request.Currency, StringComparison.InvariantCultureIgnoreCase)) { deposit = await CreateDepositFromForeignCurrency(request, token); } DepositResult depositResult = await _accountService.Deposit(deposit); if (depositResult.Status == AccountStatus.Error) { return(BadRequest($"{depositResult.Message}")); } AccountDepositResponse response = new AccountDepositResponse(depositResult.AccountId, depositResult.Amount.Value, depositResult.Currency.Value, depositResult.OldBalance.Value, depositResult.NewBalance.Value); return(Ok(response)); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse response = new AccountDepositResponse(); if (account.Type == AccountType.Free) { response.Success = false; response.Message = ("Error: Only basic and premium account can deposit with no limit. Contact IT"); return(response); } if (amount <= 0) { response.Success = false; response.Message = "depost amounts must be freater tha ero."; return(response); } response.Success = true; response.Account = account; response.Amount = amount; response.OldBalance = account.Balance; account.Balance += amount; return(response); }
public void Execute() { AccountManager accountManager = AccountManagerFactory.Create(); Console.Clear(); Console.WriteLine("Deposit to Account"); Console.WriteLine("----------------------------------"); Console.Write("Enter an account number: "); string accountNumber = Console.ReadLine(); Console.Write("Enter a deposit amount: "); decimal.TryParse(Console.ReadLine(), out decimal amount); AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit completed"); Console.WriteLine($"Account number: {response.Account.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance:c}"); Console.WriteLine($"Amount Deposited: {response.Amount}"); Console.WriteLine($"New balance: {response.Account.Balance:C}"); } else { Console.WriteLine("An error occured"); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse accountDepositResponse = new AccountDepositResponse(); if ((account.Type != AccountType.Basic) && account.Type != AccountType.Premium) { accountDepositResponse.Message = "Error: contact IT"; accountDepositResponse.Success = false; return(accountDepositResponse); } if (amount <= 0) { accountDepositResponse.Message = "Deposit must be > 0"; accountDepositResponse.Success = false; return(accountDepositResponse); } accountDepositResponse.OldBalance = account.Balance; accountDepositResponse.Account = account; accountDepositResponse.Account.Balance += amount; accountDepositResponse.Success = true; accountDepositResponse.Message = "Success"; return(accountDepositResponse); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse response = new AccountDepositResponse { Success = false }; if ((account.Type == AccountType.Basic) || (account.Type == AccountType.Premium)) { // Continue } else { response.Message = "Error: Only basic and premium accounts can deposit with no limit. Contact IT."; return(response); } if (amount <= 0) { response.Message = "Deposit amounts must be greater than zero"; return(response); } response.OldBalance = account.Balance; account.Balance += amount; response.Account = account; response.Amount = amount; response.Success = true; return(response); }
public void Execute() { AccountManager accountManager = AccountManagerFactory.Create(); //ask the user to give us an account number Console.WriteLine("Please enter an account number: "); string accountNumber = Console.ReadLine(); Console.Write("Please enter a deposit amount: "); decimal amount = decimal.Parse(Console.ReadLine()); AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Your deposit was completed!"); Console.WriteLine($"Account number: {response.Account.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance}"); Console.WriteLine($"Amount deposited: {response.Amount:c}"); Console.WriteLine($"New balance: {response.Account.Balance:c}"); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue...:"); Console.ReadKey(); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse response = new AccountDepositResponse(); if (account.Type != AccountType.Free) { response.Success = false; response.Message = "Error: a non free account hit the Free Deposit Rule. Contact IT"; return(response); } if (amount > 100) { response.Success = false; response.Message = "Free accounts cannot deposit more than $100 at a time"; return(response); } if (amount <= 0) { response.Success = false; response.Message = "Deposit amounts must be positive"; return(response); } //this is where updated account information is stoted response.OldBalance = account.Balance; account.Balance += amount; response.Account = account; response.Amount = amount; response.Success = true; return(response); }
public void Execute() { Console.Clear(); AccountManager accountManager = AccountManagerFactory.Create(); Console.Write("Please enter an account number:"); string accountNumber = Console.ReadLine(); Console.Write("Please enter a deposit amount:"); decimal amount = decimal.Parse(Console.ReadLine()); AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit completed!"); Console.WriteLine($"Account Number {response.Account.AccountNumber}"); Console.WriteLine($"Old Balance {response.OldBalance:c}"); Console.WriteLine($"Deposit Amount {response.Amount:c}"); Console.WriteLine($"Current Balance {response.Account.Balance:c}"); } else { Console.WriteLine("An error occured:"); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue."); Console.ReadKey(); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse accountDepositResponse = new AccountDepositResponse(); if (account.Type != AccountType.Free) { accountDepositResponse.Message = "Error: contact IT"; accountDepositResponse.Success = false; return(accountDepositResponse); } if (amount > 100) { accountDepositResponse.Message = "Free accounts cannot deposit more than $100 at once"; accountDepositResponse.Success = false; return(accountDepositResponse); } if (amount < 0) { accountDepositResponse.Message = "Free accounts cannot deposit negative amounts"; accountDepositResponse.Success = false; return(accountDepositResponse); } accountDepositResponse.OldBalance = account.Balance; accountDepositResponse.Account = account; accountDepositResponse.Account.Balance += amount; accountDepositResponse.Success = true; accountDepositResponse.Message = "Success"; return(accountDepositResponse); }
public void Execute() { Console.Clear(); AccountManager acctMgr = Factory.Create(); Console.WriteLine("Enter an account number: "); string acctNum = Console.ReadLine(); Console.Write("Enter a deposit amount"); decimal amt = decimal.Parse(Console.ReadLine()); AccountDepositResponse response = acctMgr.Deposit(acctNum, amt); if (response.Success) { Console.WriteLine("Deposit completed!"); Console.WriteLine($"Account Number : {response.Acct.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance:c}"); Console.WriteLine($"Deposit amount: { response.Amount:c}"); Console.WriteLine($"New balance: {response.Acct.Balance:c}"); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public AccountDepositResponse Deposit(string accountNumber, decimal amount) { AccountDepositResponse response = new AccountDepositResponse(); response.Account = _accountRepository.LoadAccount(accountNumber); if (response.Account == null) { response.Success = false; response.Message = $"{accountNumber} is not a valid account."; return(response); } else { response.Success = true; } IDeposit depositRule = DepositRulesFactory.Create(response.Account.Type); response = depositRule.Deposit(response.Account, amount); if (response.Success) { _accountRepository.SaveAccount(response.Account); } return(response); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse response = new AccountDepositResponse(); if (account.Type != AccountType.Free) { response.Success = false; response.Message = "Error: A non free account hit the Free Deposit Rule. Contact IT"; return(response); } // cant deposit more than $100 in a day if (amount > 100) { response.Success = false; response.Message = "free account cannot deposit more than $100 in a day"; return(response); } // has to deposit more than $0 if (amount <= 0) { response.Success = false; response.Message = "Deposit amount must be greater than $0"; return(response); } response.OldBalance = account.Balance; account.Balance += amount; response.Account = account; response.Amount = amount; response.Success = true; return(response); }
public void Execute() { Console.Clear(); AccountManager manager = DIContainer.Kernel.Get <AccountManager>(); Console.Write("Enter an account number: "); string accountNumber = Console.ReadLine(); //added input amount validation decimal amount = WorkflowHelpers.DecimalInputValidation("Enter a deposit amount: "); AccountDepositResponse response = manager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit completed!"); Console.WriteLine($"Account Number: {response.Account.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance:c}"); Console.WriteLine($"Amount Deposited: {response.Amount:c}"); Console.WriteLine($"New balance: {response.Account.Balance:c}"); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse response = new AccountDepositResponse(); if ((account.Type != AccountType.Basic) && (account.Type != AccountType.Premium)) { response.Success = false; response.Message = "Error: Only basic and premium accounts can deposit with no limit. Contact IT"; return(response); } if (amount <= 0) { response.Success = false; response.Message = "Deposit amounts must be positive!"; return(response); } response.OldBalance = account.Balance; account.Balance += amount; response.Account = account; response.Amount = amount; response.Success = true; return(response); }
public void Execute() { AccountManager accountManager = AccountManagerFactory.Create(); Console.Clear(); Console.WriteLine("Deposit"); Console.WriteLine("============================"); Console.Write("Enter an account number: "); string accountNumber = Console.ReadLine(); Console.Write("Enter a deposit amount: "); decimal amount = decimal.Parse(Console.ReadLine());//TryParse AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit completed!"); Console.WriteLine($"Account Number: {response.Account.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance:c} "); Console.WriteLine($"Amount Deposited: {response.Amount:c}"); Console.WriteLine($"New Balance: {response.Account.Balance:c} "); ConsoleIO.DisplayAccountDetails(response.Account); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public void Execute() { string consoleText, accountNumber; decimal amount; //AccountManager accountManager = AccountManagerFactory.Create(); AccountManager accountManager = DIContainer.Kernel.Get <AccountManager>(); consoleText = "Deposit to an account\n" + "---------------------"; ConsoleIO.DisplayText(consoleText, true); consoleText = "Enter a deposit amount: "; if (!ConsoleIO.GetAccountNumber(out accountNumber)) { return; } if (!ConsoleIO.GetDecimalValue(consoleText, true, out amount)) { return; } AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { ConsoleIO.DisplayDepositDetails(response); } else { consoleText = "An error occurred:\n" + response.Message; ConsoleIO.DisplayText(consoleText, false, false, ConsoleColor.Red); } ConsoleIO.DisplayText("Press any key to continue...", false, true); }
public void Execute() { Console.Clear(); AccountManager manager = AccountManagerFactory.Create(); Console.Write("Please enter an account number: "); string accountNumber = ConsoleIO.GetAcctNumber(); decimal amount = ConsoleIO.GetDecimalAmount("Please enter a deposit amount: "); AccountDepositResponse response = manager.Deposit(accountNumber, amount); if (response.Success) { Console.Clear(); Console.WriteLine("Deposit successful!"); Console.WriteLine("-----------------------------"); Console.WriteLine($"Account number: {response.Account.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance:c}"); Console.WriteLine($"Amount deposited: {response.Amount:c}"); Console.WriteLine($"New balance: {response.Account.Balance:c}"); } else { Console.WriteLine(response.Message); } Console.Write("Press any key to continue..."); Console.ReadKey(); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse response = new AccountDepositResponse(); if (account.Type != AccountType.Free) { response.Success = false; response.Message = "Error: a non free account hit the Free Deposit Rule. Contact IT"; return(response); } if (amount > 100) { response.Success = false; response.Message = "Free accounts cannot deposit more than $100 at a time."; return(response); } if (amount <= 0) { response.Success = false; response.Message = "Deposit amounts must be greater than zero."; return(response); } response.OldBalance = account.Balance; account.Balance += amount; response.Account = account; response.Amount = amount; response.Success = true; return(response); }
public void Execute() { Console.Clear(); AccountManager accountManager = AccountManagerFactory.Create(); Console.Write("Enter an account number: "); string accountNumber = Console.ReadLine(); Console.Write("Enter a deposit amount (Exmaple format (50.00) : "); decimal amount = decimal.Parse(Console.ReadLine()); AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit Completed!"); Console.WriteLine($"Account number: {response.Account.AccountNumber}"); Console.WriteLine($"Old Balance: {response.OldBalance:c}"); Console.WriteLine($"Amount Deposited: {response.Amount:c}"); Console.WriteLine($"New Balance: {response.Account.Balance:c}"); } else { Console.WriteLine("An error occured: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadLine(); }
public AccountDepositResponse Deposit(Account account, decimal amount) { AccountDepositResponse response = new AccountDepositResponse(); if (account.Type != AccountType.Basic && account.Type != AccountType.Premium) { response.Success = false; Console.WriteLine("Error: Only basic and premiun accounts can deposit with no limit. Contack IT"); return(response); } if (amount <= 0) { response.Success = false; Console.WriteLine("Deposit amounts must be positive!"); return(response); } response.Success = true; response.Account = account; response.Amount = amount; response.OldBalance = account.Balance; account.Balance += amount; return(response); }
public AccountDepositResponse Deposit(string accountNumber, decimal amount) { AccountDepositResponse accountDepositResponse = new AccountDepositResponse { Account = _accountRepository.LoadAccount(accountNumber) }; if (accountDepositResponse.Account == null) { Console.WriteLine(accountNumber + " is not an account number."); return(accountDepositResponse); } else { accountDepositResponse.Amount = amount; accountDepositResponse.Success = true; } IDeposit depositRule = DepositRulesFactory.Create(accountDepositResponse.Account.Type); accountDepositResponse = depositRule.Deposit(accountDepositResponse.Account, amount); if (accountDepositResponse.Success) { _accountRepository.SaveAccount(accountDepositResponse.Account); } return(accountDepositResponse); }
public void Execute() { Console.Clear(); AccountManager accountManager = DIContainer.Kernel.Get <AccountManager>(); Console.WriteLine("Enter an account number: "); string accountNumber = Console.ReadLine(); Console.Write("Enter a deposit amount: "); decimal amount = decimal.Parse(Console.ReadLine()); AccountDepositResponse response = accountManager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit completed!"); Console.WriteLine($"Account number: {response.Account.Balance}"); Console.WriteLine($"Old balance: {response.OldBalance:c}"); Console.WriteLine($"Amount deposited: {response.Amount:c}"); Console.WriteLine($"New balance: {response.Account.Balance:c}"); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public void CanWriteDepositToFile() { AccountManager manager = DIContainer.Container.Resolve <AccountManager>(); AccountDepositResponse response = manager.Deposit("11111", 1.25m); Assert.AreEqual(true, response.Success); Assert.AreEqual(101.25m, response.Account.Balance); }
public void NegativeOrZeroAmountDepositsFail(string accountNumber, decimal amount) { IAccountRepository repo = new FileAccountRepository(); Account account = repo.LoadAccount(accountNumber); AccountManager accountManager = new AccountManager(repo); AccountDepositResponse response = accountManager.Deposit(account.AccountNumber, amount); Assert.IsFalse(response.Success); }
public void CanDepositToAccountInFile(string accountNumber, decimal depositAmount, bool expectedResult) { IAccountRepository repo = new FileAccountRepository(); Account account = repo.LoadAccount(accountNumber); AccountManager accountManager = new AccountManager(repo); AccountDepositResponse response = accountManager.Deposit(account.AccountNumber, depositAmount); Assert.AreEqual(expectedResult, response.Success); }
public void CanWriteDepositToFile() { AccountManager manager = AccountManagerFactory.Create(); AccountDepositResponse response = manager.Deposit("11111", 1.25m); Assert.AreEqual(true, response.Success); Assert.AreEqual(101.25m, response.Account.Balance); }
public void CanWriteDepositToFile() { IAccountRepository repo = DIContainer.Kernel.Get <IAccountRepository>(); AccountManager manager = new AccountManager(repo); AccountDepositResponse response = manager.Deposit("11111", 1.25m); Assert.AreEqual(true, response.Success); Assert.AreEqual(101.25m, response.Account.Balance); }
public static void DisplayDepositDetails(AccountDepositResponse response) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Deposit Completed!"); Console.WriteLine($"Account Number: {response.Account.AccountNumber}"); Console.WriteLine($"Old Balance: {response.OldBalance:c}"); Console.WriteLine($"Amount Deposited: {response.Amount}"); Console.WriteLine($"New Balance: {response.Account.Balance:c}"); Console.ResetColor(); }
public void Execute() { Console.Clear(); IAccountRepository repo = DIContainer.Kernel.Get <IAccountRepository>(); AccountManager manager = new AccountManager(repo); Console.Write("Enter an account number: "); string accountNumber = Console.ReadLine(); Console.Write("Enter a deposit amount: "); string depositAmount = Console.ReadLine(); decimal amount = 0m; decimal result; if (!String.IsNullOrWhiteSpace(depositAmount)) { if (decimal.TryParse(depositAmount, out result)) { amount = result; } else { Console.WriteLine("You must enter a deposit amount in the form of a number in this field!"); Console.WriteLine("Press any key to continue"); Console.ReadKey(); return; } } else { Console.WriteLine("You must enter a deposit amount in the form of a number in this field!"); Console.WriteLine("Press any key to continue"); Console.ReadKey(); return; } AccountDepositResponse response = manager.Deposit(accountNumber, amount); if (response.Success) { Console.WriteLine("Deposit completed!"); Console.WriteLine($"Account Number: {response.Account.AccountNumber}"); Console.WriteLine($"Old balance: {response.OldBalance:c}"); Console.WriteLine($"Amount Deposited: {response.Amount:c}"); Console.WriteLine($"New balance: {response.Account.Balance:c}"); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }