private void ProjectUsersChanged(Project oldProject, Project newProject) { var userId = projectHelper.ListUserOnProjectInRole(newProject.Id, "ProjectManager").FirstOrDefault().Id; var addedUsers = newProject.Users.Except(oldProject.Users).ToList(); var removedUsers = oldProject.Users.Except(newProject.Users).ToList(); foreach (var user in addedUsers) { var NewHistory = new ProjectHistory() { ProjectId = newProject.Id, UserId = userId, ChangedOn = DateTime.Now, Property = $"User added to: {newProject.Name}", OldValue = "", NewValue = user.Email }; db.ProjectHistories.Add(NewHistory); } foreach (var user in removedUsers) { var NewHistory = new ProjectHistory() { ProjectId = newProject.Id, UserId = userId, ChangedOn = DateTime.Now, Property = $"User removed from: {newProject.Name}", OldValue = "", NewValue = user.Email }; db.ProjectHistories.Add(NewHistory); } }
public List <ApplicationUser> ListTicketUsers(int TicketId) { var UserList = new List <ApplicationUser>(); var ticket = db.Tickets.Find(TicketId); UserList.Add(ticket.Developer); UserList.Add(ticket.Submitter); UserList.Add(projectHelper.ListUserOnProjectInRole(ticket.ProjectId, "ProjectManager").FirstOrDefault()); return(UserList); }
public void NewTicketNotification(Ticket newTicket) { var projectManager = projectHelper.ListUserOnProjectInRole(newTicket.ProjectId, "ProjectManager").FirstOrDefault(); var newNotification = new TicketNotification() { TicketId = newTicket.Id, UserId = projectManager.Id, Created = DateTime.Now, Subject = $"New Ticket has been Created Id: {newTicket.Id}", Message = $"Hello {projectManager.FullName}, A New Ticket new Ticket has been Created {newTicket.Issue} on Project ", NotificationType = "new" }; db.Notifications.Add(newNotification); db.SaveChanges(); }