public IActionResult AddCredit(CurrentBalanceModel model)
        {
            HttpWebRequest request = _requests.CreateTopUpRequest(model);

            using (HttpWebResponse response = request.GetResponseNoException())
            {
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    JObject deserializedResponseBody = _logic.DeserializeResponse(response);

                    var curretCredit = deserializedResponseBody.SelectToken("currentBalance").Value <decimal>();

                    var topupModel = new CurrentBalanceModel()
                    {
                        CurrentBalance = curretCredit
                    };

                    return(View("TopUp", topupModel));
                }
            }
            return(View("Error", new ErrorMessage()
            {
                Message = "Unexpected error."
            }));
        }
        public HttpWebRequest CreateTopUpRequest(CurrentBalanceModel model)
        {
            var cardId = _session.GetString("CardData");
            var pinNo  = _session.GetString("PIN");

            var addCreditModel = new AddCreditAuthModel()
            {
                credit    = model.Credit,
                cardId    = cardId,
                pinNumber = pinNo
            };

            var jsonObj = JsonConvert.SerializeObject(addCreditModel);

            var authToken  = _session.GetString("JwtToken");
            var authHeader = $"Bearer {authToken}";
            var requestUri = $"https://localhost:44340/api/MembershipCards/{addCreditModel.cardId}/AddCredit";
            var request    = (HttpWebRequest)WebRequest.Create(requestUri);

            request.Method = "PUT";
            request.Headers.Add("Accept", "application/json");
            request.Headers.Add("Authorization", authHeader);
            request.ContentType = "application/json";

            using (var streamWriter = new StreamWriter(request.GetRequestStream()))
            {
                streamWriter.Write(jsonObj);
                streamWriter.Flush();
                streamWriter.Close();
            }

            return(request);
        }