private Models.Response GetResponse(AccountOpeningResponse r)
 {
     return(new Models.Response()
     {
         accountNumber = r.accounT_NO,
         branchCode = r.brancH_CODE,
         customerName = r.customeR_NAME,
         customerNumber = r.customeR_NO,
         message = r.message
     });
 }
        public async Task <Models.Response> OpenAccount(AccountOpeningRequest request)
        {
            AccountOpeningResponse res = new AccountOpeningResponse();
            string reqString; string respMsg = string.Empty; string resultContent = string.Empty;
            int    respCode = 0;

            try
            {
                using (var client = new HttpClient())
                {
                    reqString = JsonHelper.toJson(request);
                    var content = new StringContent(reqString, Encoding.UTF8, Constant.CONTENTTYPE);
                    var result  = await client.PostAsync(_settings.baseURL + _settings.peURL, content);

                    respCode      = (int)result.StatusCode;
                    respMsg       = result.ReasonPhrase;
                    resultContent = await result.Content.ReadAsStringAsync();
                };
            }
            catch (TaskCanceledException tex)
            {
                respCode = (int)HttpStatusCode.RequestTimeout;
                res      = new AccountOpeningResponse()
                {
                    message = Constant.TIMEOUT_MSG,
                };

                _logger.LogInformation($"{request.FIRST_NAME} {request.LAST_NAME} : {tex.ToString()}");
            }
            catch (Exception ex)
            {
                respCode = (int)HttpStatusCode.InternalServerError;
                res      = new AccountOpeningResponse()
                {
                    message = $"{Constant.ACC_CREATION_FAILED}: {ex.Message}"
                };

                _logger.LogInformation($"{request.FIRST_NAME} {request.LAST_NAME} : {ex.ToString()}");
            }

            if (!string.IsNullOrEmpty(resultContent))
            {
                res = JsonHelper.fromJson <AccountOpeningResponse>(resultContent);

                res.message = string.IsNullOrEmpty(res.accounT_NO) ? Constant.ACC_CREATION_FAILED : Constant.ACC_CREATION_SUCCESSFUL;
            }
            else
            {
                res.message = Constant.UKNOWN_MSG;
            }

            return(GetResponse(res));
        }