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));
        }
        public async Task <IActionResult> Index(string sortOrder    = null, string currentFilter = null,
                                                string searchString = null, int?page             = null)
        {
            ViewData["CurrentSort"]       = sortOrder;
            ViewData["SortValidFrom"]     = string.IsNullOrEmpty(sortOrder) ? "validFrom_desc" : "";
            ViewData["SortSenderAccount"] = sortOrder == "senderAccount" ? "senderAccount_desc" : "senderAccount";
            ViewData["SortMessage"]       = sortOrder == "message" ? "message_desc" : "message";
            notifications.SortOrder       = sortOrder != null && sortOrder.EndsWith("_desc")
                ? SortOrder.Descending
                : SortOrder.Ascending;
            notifications.SortFunction = getSortFunction(sortOrder);
            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"]  = searchString;
            notifications.SearchString = searchString;
            notifications.PageIndex    = page ?? 1;
            var loggedInUser = await userManager.GetUserAsync(HttpContext.User);

            if (loggedInUser == null)
            {
                return(View());
            }
            var notificationsList = await loadNotifications(loggedInUser);

            var notificationsViewsList = new NotificationViewsList(notificationsList);

            foreach (var notification in notificationsViewsList)
            {
                await loadSender(notification);
            }
            return(View(notificationsViewsList));
        }