public ActionResult Edit(EditTransactionViewModel transactionViewModel)
        {
            if (!ModelState.IsValid)
            {
                TransactionHelpers.SetCategoryDropDownList(transactionViewModel, Request);

                if (transactionViewModel.Categories is null)
                {
                    TempData.Add("Message", "Error: Categories missing");
                    TempData.Add("MessageColour", "danger");
                    return(RedirectToAction("Index", "Household"));
                }

                return(View(transactionViewModel));
            }

            var url = $"{ProjectConstants.APIURL}/api/transaction/edit/{transactionViewModel.Id}";

            var parameters = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("Title", transactionViewModel.Title),
                new KeyValuePair <string, string>("Description", transactionViewModel.Description),
                new KeyValuePair <string, string>("Amount", transactionViewModel.Amount.ToString()),
                new KeyValuePair <string, string>("Date", transactionViewModel.Date.ToString()),
                new KeyValuePair <string, string>("CategoryId", transactionViewModel.CategoryId.ToString()),
            };

            var encodedParameters = new FormUrlEncodedContent(parameters);
            var response          = HttpClientContext.httpClient.PostAsync(url, encodedParameters).Result;

            if (response.IsSuccessStatusCode)
            {
                TempData.Add("Message", $"Transaction '{transactionViewModel.Title}' Edited!");
                return(RedirectToAction("HouseholdTransactions", "Transaction", new { Id = transactionViewModel.HouseholdId }));
            }
            else
            {
                ErrorHelpers.HandleResponseErrors(response, TempData, ModelState);

                TransactionHelpers.SetCategoryDropDownList(transactionViewModel, Request);

                if (transactionViewModel.Categories is null)
                {
                    TempData.Add("Message", "Error: Categories missing");
                    TempData.Add("MessageColour", "danger");
                    return(RedirectToAction("Index", "Household"));
                }

                return(View(transactionViewModel));
            }
        }
        public ActionResult Edit(int?Id)
        {
            // Category Id
            if (Id is null)
            {
                TempData.Add("Message", "Improper Id");
                TempData.Add("MessageColour", "danger");
                return(RedirectToAction("Index", "Household"));
            }

            var url = $"{ProjectConstants.APIURL}/api/transaction/getbyid/{Id}";

            var response = HttpClientContext.httpClient.GetAsync(url).Result;

            if (response.IsSuccessStatusCode)
            {
                var responseResult = response.Content.ReadAsStringAsync().Result;

                var data = JsonConvert.DeserializeObject <EditTransactionViewModel>(responseResult);

                TransactionHelpers.SetCategoryDropDownList(data, Request);

                if (data.Categories is null)
                {
                    TempData.Add("Message", "Error: Categories missing");
                    TempData.Add("MessageColour", "danger");
                    return(RedirectToAction("Index", "Household"));
                }

                return(View(data));
            }
            else
            {
                ErrorHelpers.HandleResponseErrors(response, TempData, ModelState);
                return(RedirectToAction("Index", "Household"));
            }
        }