public ActionResult Details(int?id) { HouseholdDetailsViewModel vm = new HouseholdDetailsViewModel(); vm.Household = db.Households.Find(id); var user = db.Users.Find(User.Identity.GetUserId()); return(View(vm)); }
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")); } }