public IActionResult SetCategoriesToBankAccount(int bankAccountId, int id) { BankAccountMovement movement = _myFinanceService.GetBankAccountMovement(User.GetUserId(), bankAccountId, id); CategoriesAccountMovementViewModel viewModel = Mapper.Map <CategoriesAccountMovementViewModel>(movement); List <Category> categories = _myFinanceService.GetCategories(User.GetUserId()); viewModel.SetAvailableCategories(Mapper.Map <List <Category>, List <CategoryViewModel> >(categories)); return(View(viewModel)); }
public async Task <IViewComponentResult> InvokeAsync() { BarChartViewModel viewModel = await Task.Run(() => { DateTime now = DateTime.Now; BarChartViewModel vm = new BarChartViewModel(); vm.MinDate = DateTime.MaxValue; vm.MaxDate = DateTime.MinValue; List <BankAccount> bankAccounts = _myFinanceService.GetBankAccounts(User.GetUserId()); bankAccounts.Where(x => x.IsVisible).ToList().ForEach(bankAccount => { var categories = _myFinanceService.GetCategories(User.GetUserId()); DateTime lastPaymentDay = FindLastPaymentDay(now); bankAccount.Movements = _myFinanceService.GetBankAccountMovements(User.GetUserId(), bankAccount.Id, lastPaymentDay, now); foreach (var selectedCategory in categories) { bankAccount.Movements.GroupBy(x => x.BankAccount).ToList().ForEach(x => { if (x.Key.Movements.Where(r => r.Categories != null).SelectMany(q => q.Categories).Any()) { var items = x.Where(e => e.Categories != null && e.Categories.Any(r => r.CategoryId == selectedCategory.Id)); AddItemIfAnyItem(bankAccount, vm, selectedCategory, items); } }); } }); return(vm); }); return(View(viewModel)); }