Exemple #1
0
        public AdditionalInvResponse AddSales(InvestmentRequest payload)
        {
            var    _client        = new RestActions(_contentRootPath);
            string url            = _configSettingManager.ArmBaseUrl + "/Sale/Additional";
            var    encryptedValue = new SecureCredentials();

            payload.ServiceUsername = encryptedValue.DecryptCredentials(_configSettingManager.ArmServiceUsername);
            payload.ServicePassword = encryptedValue.DecryptCredentials(_configSettingManager.ArmServicePassword);
            return(_client.CallRestAction <AdditionalInvResponse, InvestmentRequest>(payload, url));
        }
Exemple #2
0
        public async Task <IActionResult> CalcInvestmentAsync([FromBody] InvestmentRequest request)
        {
            try
            {
                ValidateRequest(request);
                var calc   = _calcFactory.GetCalculator(request);
                var result = await calc.CalculateAsync(request);

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemple #3
0
        public IActionResult PaymentStatus(IFormCollection response, string au)
        {
            var userprofile = new AuthenticateResponse();
            var _user       = new AuthenticateResponse();

            if (!String.IsNullOrEmpty(au))
            {
                var base64EncodedBytes = System.Convert.FromBase64String(au);
                var decodedJson        = System.Text.Encoding.UTF8.GetString(base64EncodedBytes);

                userprofile = JsonConvert.DeserializeObject <AuthenticateResponse>(decodedJson);
                _user       = userprofile;
            }

            //var _user = HttpContext.Session.Get<AuthenticateResponse>("ArmUser");
            //if (_user == null)
            //{
            //    HttpContext.Session.Set("ArmUser", userprofile);
            //}



            var getClientBalance = _client.GetTotalAccountBalance(_user.MembershipKey);

            if (getClientBalance != null)
            {
                HttpContext.Session.Set("ArmClientBalance", getClientBalance);
            }

            var trResponse      = response;
            var transactionRef  = trResponse["arm_txnref"];
            var trStatusCode    = trResponse["arm_tranx_status_code"];
            var trPayRef        = trResponse["arm_payref"];
            var trAmount        = trResponse["arm_tranx_amt"];
            var trStatusMsg     = trResponse["arm_tranx_status_msg"];
            var trCurrency      = trResponse["arm_tranx_curr"];
            var trCustId        = trResponse["arm_cust_id"];
            var trPaymentParams = trResponse["arm_payment_params"];

            if (trResponse != null)
            {
                var logInfo = $@"Response from the payment gateway :  Status Code:{trStatusCode} --- Status Message: {trStatusMsg}";
                _logger.LogInformation(logInfo);
            }

            var transactionStatus = new PaymentTransactionStatus();

            if (!String.IsNullOrEmpty(transactionRef))
            {
                var transactionquery = db.ProcessPayments.Where(s => s.ArmTranxId.Equals(transactionRef)).FirstOrDefault <ProcessPayments>();

                var inResponse = new AdditionalInvResponse();
                if (trStatusCode == "00")
                {
                    var paymentRequest    = transactionquery.PaymentRequest;
                    var investmentRequest = new InvestmentRequest();
                    investmentRequest = JsonConvert.DeserializeObject <InvestmentRequest>(paymentRequest);

                    var orderpayment = investmentRequest.OrderPayment;
                    orderpayment.PaymentReference = transactionRef;
                    orderpayment.PaymentMethod    = trPayRef;

                    investmentRequest.OrderPayment = orderpayment;

                    var payload = JsonConvert.SerializeObject(investmentRequest, Formatting.Indented);
                    transactionquery.PaymentRequest = payload;

                    //make API call to AddSales endpoint
                    inResponse = _clientService.AddSales(investmentRequest);

                    //update ProcessPayment table to reflect changes.
                    db.ProcessPayments.Update(transactionquery);
                    db.SaveChanges();
                }

                if (trResponse != null || inResponse != null)
                {
                    //persist PaymentTransactions record to the DB
                    transactionStatus = new PaymentTransactionStatus()
                    {
                        TransactionReference     = transactionRef,
                        PaymentReference         = trPayRef,
                        TransactionStatusCode    = trStatusCode,
                        TransactionAmount        = Convert.ToDecimal(trAmount),
                        TransactionStatusMessage = trStatusMsg,
                        TransactionCurrency      = trCurrency,
                        CustomerId        = trCustId,
                        PaymentParameters = trPaymentParams,
                        DateSubmitted     = DateTime.Now
                    };

                    db.PaymentTransactionStatus.Add(transactionStatus);
                    db.SaveChanges();
                }
            }

            return(View("TransactionStatus", transactionStatus));
        }
        public AdditionalInvResponse AddSales(InvestmentRequest request)
        {
            var response = _clientService.AddSales(request);

            return(response);
        }