public async Task <ActionResult> AnnouncementReadStatus(int?id) { try { Announcement announcement = null; if (id == null) { announcement = db.Announcements.OrderByDescending(a => a.CreateAt).FirstOrDefault(); } else { announcement = await db.Announcements.FindAsync(id); } if (announcement == null) { throw new ApplicationException("Announcement does not exists"); } AnnouncementViewModel avm = Mapper.Map <Announcement, AnnouncementViewModel>(announcement); if (announcement.AnnouncementReads == null) { announcement.AnnouncementReads = new List <AnnouncementRead>(); } foreach (AnnouncementRead item in db.GetUsersNotinAnnouncemntRead(announcement)) { AnnouncementReadViewModel i = Mapper.Map <AnnouncementRead, AnnouncementReadViewModel>(item); i.Status = "Not seen"; avm.AnnouncementReads.Add(i); } return(View(avm)); } catch (Exception ex) { ModelState.AddModelError("Error", ex.Message); return(View(new AnnouncementViewModel())); } }
public ActionResult Data() { try { IList <AnnouncementViewModel> announcementViewModels = new List <AnnouncementViewModel>(100); IEnumerable <Announcement> announcements = db.Announcements.OrderByDescending(o => o.ID).ToArray(); foreach (Announcement announcement in announcements) { AnnouncementViewModel avm = Mapper.Map <Announcement, AnnouncementViewModel>(announcement, opt => opt.BeforeMap((src, dest) => src.Comments = null)); if (announcement.AnnouncementReads == null) { announcement.AnnouncementReads = new List <AnnouncementRead>(); } foreach (AnnouncementRead item in db.GetUsersNotinAnnouncemntRead(announcement)) { AnnouncementReadViewModel i = Mapper.Map <AnnouncementRead, AnnouncementReadViewModel>(item); i.UserEmail = item.UserName; i.Status = "not seen"; avm.AnnouncementReads.Add(i); } announcementViewModels.Add(avm); } return(View(announcementViewModels)); } catch (Exception ex) { if (ModelState != null) { ModelState.AddModelError("Error", ex.Message); } return(View(new List <AnnouncementViewModel>())); } }