public IActionResult Index()
        {
            ErrorViewModel         errorModel = new ErrorViewModel();
            TransactionsIndexModel model      = new TransactionsIndexModel();
            GetUnsettledTransactionsRequestBody transactionsRequestBody = BuildGetUnsettledTransactionsRequestBody();
            ResponseDetails response = _apiHelper.SendPaymentApiRequest(transactionsRequestBody);

            if (response.Success)
            {
                GetUnsettledTransactionsResponseBody ResponseBody = JsonConvert.DeserializeObject <GetUnsettledTransactionsResponseBody> (response.Data.ToString());

                if (ResponseBody.Messages.ResultCode.ToLower() == "ok")
                {
                    if (ResponseBody.Transactions != null)
                    {
                        model.Transactions = ResponseBody.Transactions;
                        model.Transactions = ProtectTransactionId(model.Transactions);
                    }

                    return(View(model));
                }
                else
                {
                    errorModel.Message = ResponseBody.Messages.Message.First().Text;
                }
            }
            else
            {
                errorModel.Message = response.Data.ToString();
            }

            return(View("Error", errorModel));
        }
 private GetBatchRequestBody BuildGetSattledBatchRequestBody(TransactionsIndexModel model)
 {
     return(new GetBatchRequestBody()
     {
         GetGetSettledBatchListRequest = new GetSettledBatchListRequest()
         {
             FirstSettlementDate = model.StartDate,
             lastSettlementDate = model.StartDate.AddDays(model.Days),
             MerchantAuthentication = BuildMerchantAuthenticationModel()
         }
     });
 }
        private bool Validate(TransactionsIndexModel model)
        {
            if (model.Days > 30)
            {
                ModelState.AddModelError("", "sattlement can be retrived for 30 days at max");

                if ((DateTime.Now - model.StartDate).TotalDays < 1)
                {
                    ModelState.AddModelError("", "Start date should older than today");
                }

                return(false);
            }

            return(true);
        }
        public IActionResult Index(TransactionsIndexModel model)
        {
            if (!Validate(model))
            {
                return(View(model));
            }

            ErrorViewModel      errorModel  = new ErrorViewModel();
            GetBatchRequestBody requestBody = BuildGetSattledBatchRequestBody(model);

            // Get Batches
            ResponseDetails response = _apiHelper.SendPaymentApiRequest(requestBody);

            if (response.Success)
            {
                GetBatchResponseBody responseBody = JsonConvert.DeserializeObject <GetBatchResponseBody> (response.Data.ToString());

                if (responseBody.Messages.ResultCode.ToLower() == "ok")
                {
                    model.BatchItems = responseBody.BatchList;

                    if (model.BatchItems != null)
                    {
                        model.BatchItems = ProtectBatchId(model.BatchItems);
                    }
                }
                else
                {
                    errorModel.Message = responseBody.Messages.Message.First().Text;
                }
            }
            else
            {
                errorModel.Message = response.Data.ToString();
            }

            // Get Unsettled transaction
            GetUnsettledTransactionsRequestBody transactionsRequestBody = BuildGetUnsettledTransactionsRequestBody();

            response = _apiHelper.SendPaymentApiRequest(transactionsRequestBody);

            if (response.Success)
            {
                GetUnsettledTransactionsResponseBody transactionsResponseBody = JsonConvert.DeserializeObject <GetUnsettledTransactionsResponseBody> (response.Data.ToString());

                if (transactionsResponseBody.Messages.ResultCode.ToLower() == "ok")
                {
                    if (transactionsResponseBody.Transactions != null)
                    {
                        model.Transactions = transactionsResponseBody.Transactions;
                        model.Transactions = ProtectTransactionId(model.Transactions);
                    }

                    // got all data now return view
                    return(View(model));
                }
                else
                {
                    errorModel.Message = transactionsResponseBody.Messages.Message.First().Text;
                }
            }
            else
            {
                errorModel.Message = response.Data.ToString();
            }

            return(View("Error", errorModel));
        }