Ejemplo n.º 1
0
        public async Task <IActionResult> deposit([FromBody] Models.Request request)
        {
            FundsTransferResponse a        = new FundsTransferResponse();
            List <string>         messages = new List <string>();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(Utility.GetResponse(ModelState)));
                }

                var areq = _orclRepo.GetCashDepositRequest(request);

                if (areq == null)
                {
                    return(StatusCode((int)HttpStatusCode.BadRequest,
                                      Utility.GetResponse(Constant.UNPROCESSABLE_REQUEST, HttpStatusCode.BadRequest)));
                }

                a = await _orclRepo.CashDeposit(areq);
            }
            catch (Exception ex)
            {
                _logger.LogError($"{request.creditAccount} {request.amount}:- {Environment.NewLine} {ex.ToString()}");
                return(StatusCode((int)HttpStatusCode.InternalServerError, Utility.GetResponse(ex)));
            }

            return(CreatedAtAction("deposit", _orclRepo.GetFTResponse(a)));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> check([FromBody] StatusRequest request)
        {
            FundsTransferResponse r = null;

            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(Utility.GetResponse(ModelState)));
                }

                LogFundsTransfer l = await _orclRepo.getTransactionRef(request);

                if (l == null || string.IsNullOrEmpty(l.trnRefNo))
                {
                    return(StatusCode((int)HttpStatusCode.BadRequest,
                                      Utility.GetResponse(Constant.REF_NO_NOT_FOUND, HttpStatusCode.BadRequest)));
                }

                _StatusRequest _request = new _StatusRequest()
                {
                    transactionRef = l.trnRefNo
                };

                r = await _orclRepo.ValidateTransactionByRef(_request);

                if (r == null || string.IsNullOrEmpty(r.status))
                {
                    return(StatusCode((int)HttpStatusCode.ExpectationFailed,
                                      Utility.GetResponse(Constant.UKNOWN_STATUS, HttpStatusCode.ExpectationFailed)));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                _logger.LogError($"{request.requestId} :: {ex.ToString()}");
                return(StatusCode((int)HttpStatusCode.InternalServerError, AgencyBanking.Helpers.Utility.GetResponse(ex)));
            }

            return(CreatedAtAction("check", r));
        }
        public async Task <IActionResult> check([FromBody] StatusRequest request)
        {
            FundsTransferResponse r = new FundsTransferResponse();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(Commons.Helpers.Utility.GetResponse(ModelState)));
                }

                r = await _orclRepo.ValidateTransactionByRef(request.transactionRef);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                _logger.LogError($"{request.transactionRef} ::- {ex.ToString()}");
                return(StatusCode((int)HttpStatusCode.InternalServerError, Commons.Helpers.Utility.GetResponse(ex)));
            }

            return(CreatedAtAction("check", r));
        }
        public async Task <IActionResult> transfer([FromBody] FundsTransferRequest request)
        {
            FundsTransferResponse  resp  = new FundsTransferResponse();
            AccountEnquiryResponse aresp = new AccountEnquiryResponse();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(Commons.Helpers.Utility.GetResponse(ModelState)));
                }

                //request.trnrefno = $"{request.branch_code}{request.product}{request.l_acs_ccy}" +
                //    $"{Commons.Helpers.Utility.RandomString(6)}";

                request.trans_type = 1;

                if (request.is_own_account && !await _orclRepo.IsOwnAccount(request))
                {
                    return(StatusCode((int)HttpStatusCode.BadRequest,
                                      Commons.Helpers.Utility.GetResponse(Constant.ACCOUNT_NOT_LINKED, HttpStatusCode.BadRequest)));
                }

                if (!string.IsNullOrEmpty(request.cract) && request.cract.Length != 9)
                {
                    aresp = await _orclRepo.GetAccountEnquiryByAccountNumber(new AccountEnquiryRequest()
                    {
                        accountNumber = request.cract
                    });

                    if (aresp?.ac_stat_no_cr?.ToUpper().Trim() != "N")
                    {
                        return(StatusCode((int)HttpStatusCode.BadRequest,
                                          Commons.Helpers.Utility.GetResponse(Constant.STAT_NO_CR, HttpStatusCode.BadRequest)));
                    }
                }

                if (!string.IsNullOrEmpty(request.dract) && request.dract.Length != 9)
                {
                    aresp = await _orclRepo.GetAccountEnquiryByAccountNumber(new AccountEnquiryRequest()
                    {
                        accountNumber = request.dract
                    });

                    if (aresp?.ac_stat_no_dr?.ToUpper().Trim() != "N")
                    {
                        return(StatusCode((int)HttpStatusCode.BadRequest,
                                          Commons.Helpers.Utility.GetResponse(Constant.STAT_NO_DR, HttpStatusCode.BadRequest)));
                    }

                    if (aresp?.ac_stat_dormant?.ToUpper().Trim() != "N")
                    {
                        return(StatusCode((int)HttpStatusCode.BadRequest,
                                          Commons.Helpers.Utility.GetResponse(Constant.STAT_DORMANT, HttpStatusCode.BadRequest)));
                    }
                }

                resp = await _orclRepo.ExecuteTransaction(request);

                if (resp.status?.ToUpper().Trim() == "Y")
                {
                    resp.id       = request.trnrefno;
                    resp.trnrefno = request.trnrefno;
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"{request.cract} : {request.dract}:- {ex.ToString()}");
                return(StatusCode((int)HttpStatusCode.InternalServerError, Commons.Helpers.Utility.GetResponse(ex)));
            }

            return(CreatedAtAction("transfer", resp));
        }