public async Task <int?> CreateLoan(LoanRequest loan)
        {
            var customer = await _customerDataAgent.GetCustomerById(loan.CustomerId);

            var customerLoans = await _loanDataAgent.GetLoansByCustomerId(loan.CustomerId);

            var loanObject = _loanMapper.MapToDomain(loan);

            if (_loanDomainService.CanCreateLoan(loanObject, customer, customerLoans))
            {
                var createdLoanId = await _loanDataAgent.CreateLoan(loanObject);

                _logger.Information($"Loan created. Id - {createdLoanId}");

                return(createdLoanId);
            }

            return(null);
        }
Example #2
0
        public async Task <List <Loan> > GetAllLoans()
        {
            var loans = await _loanRepository.GetAll();

            return(loans.Select(x => _loanMapper.MapToDomain(x)).ToList());
        }
        public async Task <List <Loan> > GetCustomerLoans(int id)
        {
            var loans = await _customerRepository.GetCustomersLoans(id);

            return(loans.Select(x => _loanMapper.MapToDomain(x)).ToList());
        }