// // GET: /Events/ public ActionResult MyEvents() { var eventsViewModels = new List<EventViewModel>(); var user = userProcessor.GetUserByName(User.Identity.Name).Id; List<News> news = new List<News>(newsRepository.GetAllNewsForUser(user).OrderByDescending(x=> x.HumanTaskHistory.ChangeDateTime)); foreach (var newse in news) { eventsViewModels.Add(CreateEventViewModel(newse)); } var listEvents = new ListEventViewModel(); listEvents.Events = eventsViewModels; listEvents.Projects = new List<ProjectDataForEventsViewModel>(); listEvents.Projects.AddRange(projectProcessor.GetAllProjectsForUser(user).Select( x => new ProjectDataForEventsViewModel{ProjectId = x.Id,ProjectName = x.Name})); listEvents.Projects.AddRange(projectProcessor.GetAllProjectsForTheirCreator(user).Select( x => new ProjectDataForEventsViewModel { ProjectId = x.Id, ProjectName = x.Name })); listEvents.CurrentUserId = user; listEvents.Invitations = projectProcessor.GetAllInvitationsToUser(user).Select(x => new InvintationsInEventsViewModel { InvitationId = x.Id, ProjectId = x.ProjectId, ProjectName = x.Project.Name, SenderId = x.SenderId, SenderName = x.Sender.UserName } ).ToList(); return View(listEvents); }
// type == 1, all news about all tasks in my projects // type == 2, news about only me // type > 2, news for some project public ActionResult GetNews(ListEventViewModel eventsViewModels, int type,int projectId=-1) { if (eventsViewModels == null) return Json(eventsViewModels); eventsViewModels.Events = eventsViewModels.Events.Select(x => { x.IsVisible = true; return x; }).ToList(); if (type == 2) { foreach (var event_ in eventsViewModels.Events) { if(event_.WhoAssigneUserId != eventsViewModels.CurrentUserId && event_.WhoChangeUserId != eventsViewModels.CurrentUserId ) { event_.IsVisible = false; } } } if(type > 2) { foreach (var event_ in eventsViewModels.Events) { if(event_.ProjectId != projectId) { event_.IsVisible = false; } } } return Json(eventsViewModels); }
public ActionResult MarkAllUnreadNewsAsReaden(ListEventViewModel eventsViewModels) { var user = userProcessor.GetUserByName(User.Identity.Name); newsRepository.MarkAllUnreadNewsForUser(user.Id); eventsViewModels.Events = eventsViewModels.Events.Select(x => { x.ContainerClassName = "container evnt_read"; return x; }).ToList(); this.notifier.SetCountOfNews(user.UserName); return Json(eventsViewModels); }