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)); }
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)); } }
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); }