public async Task <JsonResult> TransactionsPerMember() { var result = new DonutChartModel(); var user = await _userManager.GetUserAsync(User); var members = _context.Users.Where(u => u.HouseHoldId == user.HouseHoldId).ToList(); var count = 1; foreach (var member in members) { result.Labels.Add(member.FullName); var transactions = _context.Transactions .Where(t => t.FpUserId == member.Id && t.IsDeleted == false && t.TransactionType == TransactionType.Withdrawal).ToList(); decimal transactionTotal = 0; foreach (var transaction in transactions) { transactionTotal += transaction.Amount; } result.Data.Add(transactionTotal); if (count >= BgColors.Count()) { count = 0; } result.BackgroundColor.Add(BgColors[count]); count++; } return(Json(result)); }
public async Task <JsonResult> TransactionsPerCategory() { var result = new DonutChartModel(); var user = await _userManager.GetUserAsync(User); var categories = _context.Categories .Include(c => c.CategoryItems) .Where(c => c.HouseHoldId == user.HouseHoldId && c.IsDeleted == false && c.Name != "Deposits") .ToList(); var count = 4; foreach (var category in categories) { result.Labels.Add(category.Name); var transactions = _context.Transactions .Where(t => t.CategoryItem.CategoryId == category.Id && t.IsDeleted == false && t.TransactionType == TransactionType.Withdrawal) .ToList(); decimal transactionTotal = 0; foreach (var transaction in transactions) { transactionTotal += transaction.Amount; } result.Data.Add(transactionTotal); if (count >= BgColors.Count()) { count = 0; } result.BackgroundColor.Add(BgColors[count]); count++; } return(Json(result)); }
public async Task <JsonResult> MoneyPerMember() { var result = new DonutChartModel(); var user = await _userManager.GetUserAsync(User); var members = _context.Users.Where(u => u.HouseHoldId == user.HouseHoldId).ToList(); var count = 0; foreach (var member in members) { result.Labels.Add(member.FullName); var accounts = _context.BankAccounts.Where(ba => ba.OwnerId == member.Id && ba.IsDeleted == false).ToList(); decimal accountTotal = 0; foreach (var account in accounts) { accountTotal += account.CurrentBalance; } result.Data.Add(accountTotal); if (count >= BgColors.Count()) { count = 0; } result.BackgroundColor.Add(BgColors[count]); count++; } return(Json(result)); }