public PartialViewResult RecentUnreadAlerts(int count) { string userId = null; if (User != null) { userId = User.Identity.GetUserId(); } using (var db = new ZapContext()) { var user = db.Users .Include("Alerts") //.Include("Messages") .Include("Alerts.PostLink") //.Include("Messages.PostLink") //.Include("Messages.From") .Where(u => u.AppId == userId).FirstOrDefault(); var vm = new RecentUnreadAlertsViewModel(); if (user != null) { var alerts = user.Alerts.Where(m => !m.IsRead && !m.IsDeleted).OrderByDescending(m => m.TimeStamp).Take(count); vm.Alerts = alerts.ToList(); } return(PartialView("_PartialRecentUnreadAlerts", model: vm)); } }
/// <summary> /// /// </summary> /// <returns></returns> public PartialViewResult RecentUnreadAlerts() { int count = 10; string userId = null; if (User != null) { userId = User.Identity.GetUserId(); } using (var db = new ZapContext()) { var userAlerts = db.Users .Where(u => u.AppId == userId) .SelectMany(u => u.Alerts) .Where(m => !m.IsRead && !m.IsDeleted) .OrderByDescending(m => m.TimeStamp) .Take(count) .Select(a => new UserAlertVm() { Id = a.Id, Title = a.Title, HasPostLink = a.PostLink != null, PostLinkPostId = a.PostLink != null ? a.PostLink.PostId : 0, PostLinkPostTitle = a.PostLink != null ? a.PostLink.PostTitle : "", Content = a.Content, }) .AsNoTracking() .ToList(); var vm = new RecentUnreadAlertsViewModel() { AlertsVm = userAlerts, }; return(PartialView("_PartialRecentUnreadAlerts", model: vm)); } }