示例#1
0
        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));
        }
示例#3
0
        // 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));
        }
示例#4
0
 // 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));
     }
 }
示例#5
0
        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));
        }
示例#6
0
        // 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));
        }