Example #1
0
        public async Task <Models.LoanApplication> CheckApprovalAsync(Models.LoanApplication loanApp)
        {
            _logger.LogInformation("Sending loan for approval");
            _logger.LogInformation(loanApp.AsJson());

            var s_loanApp = new StringContent(loanApp.AsJson(), Encoding.UTF8, "application/json");

            HttpResponseMessage resp;

            try{
                resp = await _client.PostAsync(_loanCheckerOptions.Value.ApprovalCheckPath, s_loanApp);
            }catch (Exception) {
                throw;
            }

            if (!resp.IsSuccessStatusCode)
            {
                _logger.LogError("Error requesting approval, http code {StatusCode}, reason {ReasonPhrase}", resp);
                throw new IOException(string.Format("Error checking loan, return http status code {0}", resp.StatusCode));
            }

            string respContent = await resp.Content.ReadAsStringAsync();

            _logger.LogInformation("Approval service response");
            _logger.LogInformation(respContent);

            var respLoan = Models.LoanApplication.FromJson(respContent);

            return(respLoan);
        }