예제 #1
0
        public async Task <LoanResult> CreateLoanAsync(CreateLoanRequestModel createLoanRequestModel)
        {
            var command          = createLoanRequestModel.ToCommand();
            var validationErrors = _commandRunner.Validate(command, null);

            if (validationErrors.Any())
            {
                return(new LoanResult {
                    ValidationErrors = validationErrors
                });
            }
            var id = await _commandRunner.Execute(command, null);

            var loanDto = await GetLoanByIdAsync(id);

            return(new LoanResult {
                LoanDto = loanDto
            });
        }
예제 #2
0
        public async Task <IActionResult> CreateLoan([FromBody] CreateLoanRequestModel createLoanRequestModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var loanResult = await _loanService.CreateLoanAsync(createLoanRequestModel);

                if (loanResult.HasErrors())
                {
                    return(BadRequest(loanResult.ValidationErrors));
                }

                return(CreatedAtAction(nameof(GetLoanById), new { id = loanResult.LoanDto.LoanId }, loanResult.LoanDto));
            }
            catch (ValidationException validationException)
            {
                return(StatusCode(500, validationException.Message));
            }
        }