예제 #1
0
        public ActionResult UserManagement(int id)
        {
            var actions = new List <string>
            {
                "Assign",
                "Remove"
            };

            var ticket = _context.Tickets.SingleOrDefault(t => t.Id == id);
            var users  = _context.Users.Include(u => u.Roles).Include(u => u.Projects).ToList();

            foreach (var user in users.ToList())
            {
                if (user.Roles.FirstOrDefault().RoleId != "dc581abb-7c4a-4800-8e50-7b65d0e764aa")
                {
                    users.Remove(user);
                }

                if (user.Projects != null)
                {
                    var projectCount = user.Projects.Count();
                    var projectIndex = 0;

                    foreach (var project in user.Projects)
                    {
                        if (project.Id != ticket.ProjectId)
                        {
                            projectIndex++;
                        }
                    }

                    if (projectIndex == projectCount)
                    {
                        users.Remove(user);
                    }
                }
                else
                {
                    users.Remove(user);
                }
            }

            var viewModel = new TicketAssignmentViewModel
            {
                Ticket  = ticket,
                Users   = users,
                Actions = actions
            };

            return(View(viewModel));
        }
예제 #2
0
        public void RemoveTicketFromUsers(TicketAssignmentViewModel viewModel)
        {
            var ticket = _context.Tickets.SingleOrDefault(t => t.Id == viewModel.TicketId);

            foreach (var userID in viewModel.SelectedUsers)
            {
                var user = _context.Users.SingleOrDefault(u => u.Id == userID);
                if (user.Tickets.Contains(ticket))
                {
                    user.Tickets.Remove(ticket);
                }
                _context.SaveChanges();
            }
        }
예제 #3
0
        public RedirectToRouteResult ManageTicket(TicketAssignmentViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            if (viewModel.Action == "Assign")
            {
                AssignTicketToUsers(viewModel);
                return(RedirectToAction("Index"));
            }
            else
            {
                RemoveTicketFromUsers(viewModel);
                return(RedirectToAction("Index"));
            }
        }