示例#1
0
        private async Task <bool> ValidateLoanRequest(string firstname, string lastname, int loanAmount)
        {
            var personStatus = new PersonStatusService(firstname, lastname);

            if (!personStatus.NameIsClear())
            {
                ConsoleUtils.PrintMessage("Empréstimo recusado: encontramos problemas financeiros relacionados este nome");
                return(false);
            }

            if (personStatus.HasCrimeHistory())
            {
                ConsoleUtils.PrintMessage("Empréstimo recusado: encontramos histórico criminal relacionado este nome");
                return(false);
            }

            var account = await BankService.GetInstance().TryGetAccount(firstname, lastname);

            if (account == null)
            {
                ConsoleUtils.PrintMessage("Empréstimo recusado: O cliente não possui conta no nosso banco");
                return(false);
            }


            if (loanAmount > account.Money)
            {
                ConsoleUtils.PrintMessage("Empréstimo recusado: Não fazemos empréstimos maiores que a quantia que o cliente possui em conta");
                return(false);
            }

            return(true);
        }
示例#2
0
        public static BankService GetInstance()
        {
            if (_instance == null)
            {
                lock (_syncRoot)
                {
                    _instance = new BankService(new AccountRepository(),
                                                new AccountBuilder());
                }
            }

            return(_instance);
        }