public async Task <IViewComponentResult> InvokeAsync() { var model = new ActivityViewModel(); var user = await _userManager.GetUserAsync((System.Security.Claims.ClaimsPrincipal) User); if (user is not null) { model.User = user; model.FullName = user.FirstName?.Substring(0, 1) + user.LastName?.Substring(0, 1); model.SiteUrl = user.isExternal ? null : _config.GetSection("MySettings").GetSection("SiteImageUrl").Value; // Messages model.Messages = _messageService.GetMessagesBy(user, MessageClient.Receiver, 10); model.MessagesCount = await _messageService.GetMessagesCountBy_Receiver(user); model.isMessagesEmpty = model.Messages is null ? false : await model.Messages.AnyAsync(); // Notify model.Notifications = _notifyService.GetAllBy(user); model.NotifyCount = await _notifyService.GetNotificationsCount(user); model.isNotiftEmpty = model.Notifications is null ? false : await model.Notifications.AnyAsync(); // Favourites model.FavouriteJob = _favouriteService.GetFavouriteBy <Jobs>(user, PostType.Job); model.FavouriteContestant = _favouriteService.GetFavouriteBy <Contestant>(user, PostType.Contestant); model.FavouriteCompany = _favouriteService.GetFavouriteBy <Company>(user, PostType.Company); model.FavouritesCount = await _favouriteService.GetFavouriteByCount(user, PostType.All); model.ReturnUrl = Url.PageLink(); } return(View(model)); }