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

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

            var token      = Request.Cookies["UserAuthCookie"].Value;
            var authHeader = new AuthenticationHeaderValue("Bearer", token);

            HttpClientContext.httpClient.DefaultRequestHeaders.Authorization = authHeader;

            // Handling lack of connection??? try catch?
            var response = HttpClientContext.httpClient.GetAsync(url).Result;

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

                var datas = JsonConvert.DeserializeObject <List <TransactionViewModel> >(responseResult);

                foreach (var item in datas)
                {
                    item.CategoryName    = HouseholdHelpers.GetCategoryName(item.CategoryId, Request);
                    item.BankAccountName = HouseholdHelpers.GetBankAccountName(item.BankAccountId, Request);
                    item.UserCanEdit     = TransactionHelpers.IsUserCreator(item.Id, Request, TempData);
                }

                var viewModel = new TransactionListViewModel
                {
                    Transactions             = datas,
                    HouseholdId              = (int)Id,
                    IsHouseholdOwnerOrMember = HouseholdHelpers.IsUserCreatorOrMember((int)Id, Request, TempData)
                };
                return(View(viewModel));
            }
            else
            {
                ErrorHelpers.HandleResponseErrors(response, TempData, ModelState);
                return(RedirectToAction("Index", "Household"));
            }
        }
        public ActionResult Details(int?Id)
        {
            // HouseholdId
            // Last 10 Transactions of those accounts/ grouped by category. -> Do that on that backend

            if (Id is null)
            {
                TempData.Add("Message", "Improper Id");
                TempData.Add("MessageColour", "danger");
                return(RedirectToAction("Index", "Household"));
            }

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

            var token      = Request.Cookies["UserAuthCookie"].Value;
            var authHeader = new AuthenticationHeaderValue("Bearer", token);

            HttpClientContext.httpClient.DefaultRequestHeaders.Authorization = authHeader;

            // Handling lack of connection??? try catch?
            var response = HttpClientContext.httpClient.GetAsync(url).Result;

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

                var datas = JsonConvert.DeserializeObject <HouseholdBindingModel>(responseResult);
                // Organize data into HouseholdDetailsViewModel
                var householdDetails = new HouseholdDetailsViewModel()
                {
                    NetSum                = datas.BankAccounts.Sum(acnt => acnt.Balance),
                    HouseholdId           = (int)Id,
                    BankAccountViewModels = datas.BankAccounts.Select(p => new BankAccountTransactionsViewModel()
                    {
                        Id                    = p.Id,
                        Name                  = p.Name,
                        Description           = p.Description,
                        Balance               = p.Balance,
                        TransactionViewModels = datas.Transactions.Where(trnsctn => trnsctn.BankAccountId == p.Id).Select(x => new TransactionViewModel()
                        {
                            Id           = x.Id,
                            Title        = x.Title,
                            Description  = x.Description,
                            Date         = x.Date,
                            DateCreated  = x.DateCreated,
                            DateUpdated  = x.DateUpdated,
                            IsVoid       = x.IsVoid,
                            Amount       = x.Amount,
                            CreatorId    = x.CreatorId,
                            CategoryId   = x.CategoryId,
                            CategoryName = HouseholdHelpers.GetCategoryName(x.CategoryId, Request)
                        }).GroupBy(transaction => transaction.CategoryName).ToList()
                    }).ToList()
                };

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