public async Task Handle(PlaceLoanApplication command) { var id = await _loanApplicationRepository.GetNextId(); var loanApplication = new LoanApplication(id, command.ApplicantId, command.Amount); var interestRate = await _interestRateCalculator.GetInterestRateFor(command.ApplicantId); loanApplication.SetInterestRate(interestRate); await _loanApplicationRepository.Add(loanApplication); }