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