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); }
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()); }