public ActionResult ProjectAssign(int id, string ticket) { var project = db.Projects.Find(id); var helper = new ProjectAssignHelper(); var model = new ProjectsViewModel(); model.AssignProject = project; model.AssignProjectId = id; model.SelectedUsers = helper.ListUsersOnProject(id).Select(p => p.Id).ToArray(); model.Users = new MultiSelectList(db.Users.ToList(), "Id", "FullName", model.SelectedUsers); return(View(model)); }
public ActionResult UsersForProject() { List <UsersForProjectViewModel> userList = new List <UsersForProjectViewModel>(); foreach (var project in db.Projects.OrderBy(p => p.Name).ToList()) { UsersForProjectViewModel uservm = new UsersForProjectViewModel(); uservm.Project = project; uservm.Users = helper.ListUsersOnProject(project.Id); userList.Add(uservm); } return(View(userList)); }
// GET: Tickets/Edit/5 public ActionResult Edit(int?id) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Login", "Account")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } // Mark's code: var devRoleId = db.Roles.First(r => r.Name == "Developer").Id; var projectuserslist = projecthelper.ListUsersOnProject(ticket.ProjectId).Where(p => p.Roles.Any(d => d.RoleId == devRoleId)); ViewBag.AssignedToUserId = new SelectList(projectuserslist, "Id", "DisplayName", ticket.AssignedToUserId); // My code: //var devuserslist = rolehelper.UsersInRole("Developer").ToList(); //var projectuserslist = projecthelper.ListUsersOnProject(ticket.ProjectId).ToList(); //var userslist = devuserslist.Intersect(projectuserslist); //ViewBag.AssignedToUserId = new SelectList(userslist, "Id", "DisplayName", ticket.AssignedToUserId); //var userlist = List<db.Users.IsInRole("Developer") && db.Projects.Where(t => t.Projects.AssignedToUserId == userId)>; //ViewBag.AssignedToUserId = new SelectList(userlist, "Id", "DisplayName", ticket.AssignedToUserId); //ticketlist = ticketlist.Where(p => p.AssignedToUserId.Contains(myUserId)); //ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "DisplayName", User.IsInRole("Developer")); /* SelectList(IEnumerable, String, String, Object) * Initializes a new instance of the SelectList class by using the specified items for the list, * the data value field, the data text field, and a selected value. */ ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.OwnerUserId); /* ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.AssignedToUserId); */ //Orig code return(View(ticket)); }
// GET: Projects/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } else { var project = db.Projects.Find(id); var user = db.Users.Find(User.Identity.GetUserId()); var myUsers = projectHelper.ListUsersOnProject(project.Id); List <string> usersOnProjects = new List <string>(); foreach (var userName in myUsers) { usersOnProjects.Add(userName.FullName); } ViewBag.FullName = usersOnProjects; return(View(project)); } }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // TempData["UserPreferences"] is read in at Start of Action var userPref = (UserPreferencesViewModel)TempData["UserPreferences"]; Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } var devRoleId = db.Roles.First(r => r.Name == "Developer").Id; var projectuserslist = projecthelper.ListUsersOnProject(ticket.ProjectId).Where(p => p.Roles.Any(d => d.RoleId == devRoleId)); ViewBag.AssignedToUserId = new SelectList(projectuserslist, "Id", "DisplayName", ticket.AssignedToUserId); /* SelectList(IEnumerable, String, String, Object) * Initializes a new instance of the SelectList class by using the specified items for the list, * the data value field, the data text field, and a selected value. */ ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.OwnerUserId); var myUserId = User.Identity.GetUserId(); bool mySubTicket = false; if (User.IsInRole("Submitter") && (ticket.OwnerUserId == myUserId)) { mySubTicket = true; ViewBag.MyEditSub = mySubTicket; } bool myDevTicket = false; if (User.IsInRole("Developer") && (ticket.AssignedToUserId == myUserId)) { myDevTicket = true; ViewBag.MyEditSub = myDevTicket; } bool myPMTicket = false; if (User.IsInRole("ProjectManager")) { ProjectAssignHelper projecthelper = new ProjectAssignHelper(); myPMTicket = projecthelper.IsUserTheProjectManager(myUserId, ticket.ProjectId); ViewBag.MyEditSub = myPMTicket; } ViewBag.MyEditTicket = false; if (User.IsInRole("Admin") || myPMTicket == true || myDevTicket == true || mySubTicket == true) { ViewBag.MyEditTicket = true; } // TempData["UserPreferences"] is rewritten at End of Action TempData["UserPreferences"] = userPref; ViewBag.FilterByTickets = userPref.FilterByTickets; ViewBag.FilterByStatus = userPref.FilterByStatus; return(View(ticket)); }
// GET: Tickets/Edit/5 public ActionResult Edit(int?id) { Ticket ticket = db.Tickets.Find(id); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (User.IsInRole("Admin") || User.IsInRole("ProjectManager")) { ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId); } else { ViewBag.TicketStatusId = new SelectList(new[] { ticket.TicketStatus }, "Id", "Name", ticket.TicketStatusId); } var user = db.Users.Find(User.Identity.GetUserId()); ProjectAssignHelper helper = new ProjectAssignHelper(); UserRoleHelper userhelper = new UserRoleHelper(); if (ticket == null) { return(HttpNotFound()); } List <ApplicationUser> devlist = new List <ApplicationUser>(); var projectdev = helper.ListUsersOnProject(ticket.ProjectId); foreach (var dev in projectdev) { if (userhelper.IsUserInRole(dev.Id, "Developer") == true) { devlist.Add(dev); } } ViewBag.AssignToUserId = new SelectList(devlist, "Id", "FirstName", ticket.AssignToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.ProjectId = new SelectList(helper.ListUserProjects(user.Id), "Id", "Title"); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); if (User.IsInRole("Admin")) { return(View(ticket)); } else if (User.IsInRole("ProjectManager")) { if (helper.IsUserOnProject(user.Id, ticket.ProjectId) == true) //defaults to true, == true not necessary { return(View(ticket)); } } else if (User.IsInRole("Developer") && ticket.AssignToUserId == user.Id) { return(View(ticket)); } else if (User.IsInRole("Submitter") && ticket.OwnerUserId == user.Id) { return(View(ticket)); } else { return(RedirectToAction("Index", "Home")); } return(RedirectToAction("Index", "Tickets", null)); }