Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }