public ActionResult _GetNotifications() { SetUserSessionID(); int id = (int)TempData["userid"]; AdminDashboardNotification notification = GetNotifications(id); return(PartialView(notification)); }
private AdminDashboardNotification GetNotifications(int?id) { var notification = new AdminDashboardNotification(); notification.TotalNotificationCount = 0; notification.newJobRequisitionCount = 0; notification.activeRequisitionCount = 0; try { var jobs = new List <JobRequisition>(); using (var db = new TalentContext()) { var alljobs = db.JobRequisitions.Include("JobApplications"); var publishedjobs = alljobs.Where(o => o.Status.Value != JobRequisition.JobRequisitionStatus.Completed); var activejobs = publishedjobs.Where(o => o.Status.Value == JobRequisition.JobRequisitionStatus.Posted); notification.activeRequisitionCount = !Equals(activejobs.Count(), null) ? activejobs.Count() : 0; var newrequisitions = publishedjobs.Where(o => o.Status.Value == JobRequisition.JobRequisitionStatus.Created); notification.newJobRequisitionCount = !Equals(newrequisitions.Count(), null) ? newrequisitions.Count() : 0; notification.TotalNotificationCount = notification.activeRequisitionCount + notification.newJobRequisitionCount; if (activejobs.Any()) { //int count = 1; foreach (var item in activejobs) { var url = item.JobTitle.Split(' '); var notificationitem = new DashboardNotification { ID = item.JobRequisitionID, Title = "New Requisition for " + item.JobTitle, Location = item.Location, JobApplicationCount = item.JobApplications.Count, url = "/Job/" + item.JobRequisitionID + "/" + String.Join("-", url) }; notification.Notifications.Add(notificationitem); //count++; } if (newrequisitions.Any()) { //int count = 1; foreach (var item in newrequisitions) { var url = item.JobTitle.Split(' '); var notificationitem = new DashboardNotification { ID = item.JobRequisitionID, Title = "New Requisition for " + item.JobTitle, url = "/Job/" + item.JobRequisitionID + "/" + String.Join("-", url) }; notification.Notifications.Add(notificationitem); //count++; } } } } notification.Notifications = (List <DashboardNotification>)notification.Notifications.Take(5); } catch { } return(notification); }