public async Task <IViewComponentResult> InvokeAsync()
        {
            notifications.SortFunction = x => x.ValidFrom;
            notifications.SortOrder    = SortOrder.Descending;
            var loggedInUser = await userManager.GetUserAsync(HttpContext.User);

            if (loggedInUser == null)
            {
                return(View());
            }
            var bankAccounts = await accounts.LoadAccountsForUser(loggedInUser.Id);

            var           bankAccountsViewsList = new AccountsViewsList(bankAccounts);
            List <string> bankAccountIds        = new List <string>();

            foreach (var account in bankAccountsViewsList)
            {
                bankAccountIds.Add(account.ID);
            }
            var notificationsList =
                await notifications.LoadNotificationsForAllUsers(bankAccountIds);

            var notificationsViewsList = new NotificationViewsList(notificationsList);

            foreach (var notification in notificationsViewsList)
            {
                await loadSenderAndReceiver(notification);

                if (notification.IsSeen == false)
                {
                    NotSeenCount++;
                }
            }
            return(View(notificationsViewsList));
        }
        private async Task <PaginatedList <INotification> > loadNotifications(ApplicationUser loggedInUser)
        {
            var bankAccounts = await accounts.LoadAccountsForUser(loggedInUser.Id);

            var           bankAccountsViewsList = new AccountsViewsList(bankAccounts);
            List <string> bankAccountIds        = new List <string>();

            foreach (var account in bankAccountsViewsList)
            {
                bankAccountIds.Add(account.ID);
            }

            var notificationsList =
                await notifications.LoadNotificationsForAllUsers(bankAccountIds);

            return(notificationsList);
        }