public ActionResult ProjectUser(ProjectUserViewModel model)
        {
            ProjectAssignHelper projectAH = new ProjectAssignHelper();

            foreach (var userId in db.Users.Select(r => r.Id).ToList())
            {
                projectAH.RemoveUserFromProject(userId, model.AssignProjectId);
            }

            foreach (var userId in model.SelectedUsers)
            {
                projectAH.AddUserToProject(userId, model.AssignProjectId);
            }


            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
        // GET: Projects/Edit/5
        public ActionResult Edit(int?id)
        {
            UserRolesHelper     helper = new UserRolesHelper(db);
            ProjectAssignHelper ph     = new ProjectAssignHelper();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Project project = db.Projects.Find(id);

            if (project == null)
            {
                return(HttpNotFound());
            }
            if (!helper.IsUserInRole(User.Identity.GetUserId(), "Administrator") || !helper.IsUserInRole(User.Identity.GetUserId(), "Admin") || !helper.IsUserInRole(User.Identity.GetUserId(), "Project Manager1") || !helper.IsUserInRole(User.Identity.GetUserId(), "Project Manager2") || !helper.IsUserInRole(User.Identity.GetUserId(), "Project Manager3"))
            {
                if (!db.Users.Find(User.Identity.GetUserId()).Projects.Contains(project))
                {
                    return(RedirectToAction("Index"));
                }
            }
            List <ApplicationUser> PMList = new List <ApplicationUser>();

            var PM1 = helper.UsersInRole("Project Manager1");
            var PM2 = helper.UsersInRole("Project Manager2");
            var PM3 = helper.UsersInRole("Project Manager3");

            PM1.Concat(PM2).Concat(PM3);
            List <string> Statuses = new List <string>();

            foreach (var statusname in db.Projects)
            {
                if (!Statuses.Contains(statusname.ProjectStatus))
                {
                    Statuses.Add(statusname.ProjectStatus);
                }
            }


            ViewBag.ProjectStatusId  = new SelectList(db.ProjectStatuses, "Id", "Name");
            ViewBag.ProjectManagerId = new SelectList(PM1, "Id", "FirstName");

            return(View(project));
        }
Ejemplo n.º 3
0
        // *****************************************************************************************************************
        // GET: /Manage/UpdateProfile
        public ActionResult UpdateProfile()
        {
            var myUserId = User.Identity.GetUserId();
            ProjectAssignHelper    projecthelper = new ProjectAssignHelper();
            UserRolesHelper        rolehelper    = new UserRolesHelper(db);
            UpdateProfileViewModel profile       = new UpdateProfileViewModel
            {
                NewFirstName   = db.Users.Find(User.Identity.GetUserId()).FirstName,
                NewLastName    = db.Users.Find(User.Identity.GetUserId()).LastName,
                NewDisplayName = db.Users.Find(User.Identity.GetUserId()).DisplayName
            };

            // Get Project Assignments
            profile.UserProjects = projecthelper.ListProjectsForUser(myUserId);
            // Get Role Assignments
            profile.UserRoles = rolehelper.ListUserRoles(myUserId).ToArray();

            return(View(profile));
        }
Ejemplo n.º 4
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            ProjectAssignHelper helper  = new ProjectAssignHelper();
            Project             project = db.Projects.Find(ticket.ProjectId);
            var user = db.Users.Find(User.Identity.GetUserId());

            if (User.IsInRole("Admin"))
            {
                return(View(ticket));
            }
            else if (User.IsInRole("ProjectManager"))
            {
                if (helper.IsUserOnProject(user.Id, project.Id) == 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", "Projects"));
            }
            return(RedirectToAction("Index", "Tickets", null));
        }
        public ActionResult ProjectUser(ProjectUserViewModels model)
        {
            // submit assign and it goes through here, we need to go through users assigned in database and put in the users selected
            ProjectAssignHelper projectassignhelper = new ProjectAssignHelper();

            //var project = db.Projects.Find(model.AssignProject.Id); No need for this since we don't need to find project in db by Id
            foreach (var userId in db.Users.Select(r => r.Id).ToList()) // remove all users from project
            {
                projectassignhelper.RemoveUserFromProject(userId, model.AssignProjectId);
            }
            foreach (var userId in model.SelectedUsers) // add back the ones you want
            {
                projectassignhelper.AddUserToProject(userId, model.AssignProjectId);
                ProjectUser projectuser = new ProjectUser();
                projectuser.ProjectId = model.AssignProjectId;
                projectuser.UserId    = userId;
                db.ProjectUsers.Add(projectuser);
                db.SaveChanges();
            }

            return(RedirectToAction("Details", new { id = model.AssignProjectId }));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Project project = db.Projects.Find(id);

            if (project == null)
            {
                return(HttpNotFound());
            }

            ProjectAssignHelper helper = new ProjectAssignHelper();
            var user = db.Users.Find(User.Identity.GetUserId());

            if (!User.IsInRole("Admin") && helper.IsUserOnProject(user.Id, project.Id) == false)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ViewBag.UserTimeZone = db.Users.Find(User.Identity.GetUserId()).TimeZone;
            return(View(project));
        }
        // GET: Projects/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Project project = db.Projects.Find(id);

            if (project == null)
            {
                return(HttpNotFound());
            }
            ProjectAssignHelper helper = new ProjectAssignHelper();
            var user = db.Users.Find(User.Identity.GetUserId());

            if (helper.IsUserOnProject(user.Id, project.Id) == true || User.IsInRole("Admin") || User.IsInRole("ProjectManager"))
            {
                return(View(project));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 8
0
        public async Task <ActionResult> Create([Bind(Include = "Id,TicketId,Comment")] TicketComment ticketComment, int Id)
        {
            if (ModelState.IsValid)
            {
                UserRolesHelper     helper = new UserRolesHelper(db);
                ProjectAssignHelper ph     = new ProjectAssignHelper();
                var userId = User.Identity.GetUserId();
                var user   = db.Users.Find(userId);
                var ticket = db.Tickets.Find(Id);


                TicketNotification TN = new TicketNotification();
                TN.TicketId = ticket.Id;
                TN.UserId   = ticket.AssignedToUserId;
                TN.User     = ticket.AssignedToUser;
                db.TicketNotifications.Add(TN);

                var message = new IdentityMessage
                {
                    Body = "The ticket" + " " + ticket.Title + " " + "from project" + " " + ticket.Project.Name + " " + "has been commented on by" + " " + user.FirstName + user.LastName + "." + "  " +
                           "Please see your ticket comments to view the comment.",
                    Subject     = "Your ticket has been commented on.",
                    Destination = TN.User.Email
                };
                EmailService email = new EmailService();
                await email.SendAsync(message);



                var userroleAdmin           = helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Administrator");
                var userroleProjectManager1 = helper.IsUserInRole(userId, "Project Manager1");
                var userroleProjectManager2 = helper.IsUserInRole(userId, "Project Manager2");
                var userroleProjectManager3 = helper.IsUserInRole(userId, "Project Manager3");
                var userroleDeveloper1      = helper.IsUserInRole(userId, "Developer1");
                var userroleDeveloper2      = helper.IsUserInRole(userId, "Developer2");
                var userroleDeveloper3      = helper.IsUserInRole(userId, "Developer3");
                var userroleDeveloper4      = helper.IsUserInRole(userId, "Developer4");
                var userroleSubmitter       = helper.IsUserInRole(userId, "Submitter");

                int ticketid  = Id;
                int projectid = ticket.Project.Id;

                if (userroleAdmin || userroleProjectManager1 && ph.IsUserOnAProject(userId, projectid) || userroleProjectManager2 && ph.IsUserOnAProject(userId, projectid) || userroleProjectManager3 && ph.IsUserOnAProject(userId, projectid) ||
                    userroleDeveloper1 && ticket.AssignedToUserId == userId || userroleDeveloper2 && ticket.AssignedToUserId == userId || userroleDeveloper3 && ticket.AssignedToUserId == userId ||
                    userroleDeveloper4 && ticket.AssignedToUserId == userId || userroleSubmitter && ticket.SubmitterUserId == userId)
                {
                    ticketComment.Ticket   = ticket;
                    ticketComment.UserId   = userId;
                    ticketComment.User     = user;
                    ticketComment.TicketId = ticket.Id;
                    string y = "";
                    ticketComment.CreatedDate = DateTime.UtcNow;
                    TimeSpan elapsed = DateTime.UtcNow - ticketComment.CreatedDate;



                    double hours   = elapsed.TotalHours;
                    double minutes = elapsed.TotalMinutes;
                    string s       = elapsed.ToString();

                    db.TicketComments.Add(ticketComment);
                    db.SaveChanges();
                    return(RedirectToAction("Details", "Tickets", new { id = Id }));
                }



                else
                {
                    var Temporary = "You cannot add comments to this ticket.  Please revisit your role assignment.  Tickets can only be commented on by their creator, a developer assigned to the ticket, a project manager, or an administrator.";
                    TempData["message"] = Temporary;
                }
            }
            return(RedirectToAction("Details", "Tickets", new { id = Id }));
        }
Ejemplo n.º 9
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));
        }
Ejemplo n.º 10
0
        public ActionResult LayoutPartial()
        {
            var currentuser = db.Users.Find(User.Identity.GetUserId());

            if (currentuser != null)
            {
                UserRolesHelper     uh = new UserRolesHelper(db);
                UsersRolesViewModel vm = new UsersRolesViewModel();
                vm.User  = db.Users.Find(User.Identity.GetUserId());
                vm.Roles = uh.ListUserRoles(vm.User.Id);

                UserRolesHelper     helper                    = new UserRolesHelper(db);
                ProjectAssignHelper ph                        = new ProjectAssignHelper();
                var                    userId                 = User.Identity.GetUserId();
                var                    user                   = db.Users.Find(userId);
                var                    userroleAdmin          = helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Administrator");
                var                    userroleDeveloper      = helper.IsUserInRole(userId, "Developer1") || helper.IsUserInRole(userId, "Developer2") || helper.IsUserInRole(userId, "Developer3") || helper.IsUserInRole(userId, "Developer4");
                var                    userroleProjectManager = helper.IsUserInRole(userId, "Project Manager1") || helper.IsUserInRole(userId, "Project Manager2") || helper.IsUserInRole(userId, "Project Manager3");
                var                    userroleSubmitter      = helper.IsUserInRole(userId, "Submitter");
                List <Project>         DeveloperProjects      = new List <Project>();
                List <ApplicationUser> Developers             = helper.UsersInRole("Developer1").Concat(helper.UsersInRole("Developer2")).Concat(helper.UsersInRole("Developer3")).Concat(helper.UsersInRole("Developer4")).ToList();



                List <Project> userprojects = new List <Project>();
                foreach (var project in db.Projects)
                {
                    if (ph.IsUserOnAProject(userId, project.Id))
                    {
                        userprojects.Add(project);
                    }
                }

                ViewBag.projectcount = userprojects.Count();


                List <Ticket> usertickets = new List <Ticket>();

                if (helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Administrator"))
                {
                    foreach (var ticket in db.Tickets)
                    {
                        usertickets.Add(ticket);
                    }
                    ViewBag.ticketcount = usertickets.Count();
                }

                else if (userroleProjectManager)
                {
                    List <Project> UserProjects = new List <Project>();
                    foreach (var x in db.Projects)
                    {
                        if (ph.IsUserOnAProject(userId, x.Id))
                        {
                            UserProjects.Add(x);
                        }
                    }

                    foreach (var project in UserProjects)
                    {
                        foreach (var ticket in project.Tickets)
                        {
                            usertickets.Add(ticket);
                        }
                    }
                    var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");
                    var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");
                    ViewBag.ticketcount       = nonarchivedtickets.Count();
                    ViewBag.urgentticketcount = urgenttickets.Count();
                }


                else if (userroleDeveloper)
                {
                    List <Project> UserProjects = new List <Project>();
                    foreach (var x in db.Projects)
                    {
                        if (ph.IsUserOnAProject(userId, x.Id))
                        {
                            UserProjects.Add(x);
                        }
                    }

                    foreach (var project in UserProjects)
                    {
                        foreach (var ticket in project.Tickets)
                        {
                            usertickets.Add(ticket);
                        }
                    }
                    var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");

                    ViewBag.ticketcount = nonarchivedtickets.Count();
                }

                else if (userroleSubmitter)
                {
                    var tickets = db.Tickets.Where(t => t.SubmitterUserId == userId).ToList();

                    var nonarchivedtickets = tickets.Where(t => t.TicketStatus.Name != "Archived");
                    ViewBag.ticketcount = nonarchivedtickets.Count();
                }

                return(PartialView("~/Areas/BugTracker/Views/Shared/_LayoutPartial.cshtml", vm));
            }

            return(RedirectToAction("Index", "Home", new { area = "BugTracker" }));
        }
Ejemplo n.º 11
0
        public ActionResult Landing()
        {
            List <TicketData> TicketChartList = new List <TicketData>();



            TicketData TicketData1 = new TicketData();

            var dateago  = DateTime.Now.Date.AddDays(-7).ToString("d");
            var dateago2 = DateTime.Now.Date.AddDays(-6).ToString("d");
            var dateago3 = DateTime.Now.Date.AddDays(-5).ToString("d");
            var dateago4 = DateTime.Now.Date.AddDays(-4).ToString("d");
            var dateago5 = DateTime.Now.Date.AddDays(-3).ToString("d");
            var dateago6 = DateTime.Now.Date.AddDays(-2).ToString("d");
            var dateago7 = DateTime.Now.Date.AddDays(-1).ToString("d");
            var tickets  = new List <Ticket>();

            foreach (var ticket in db.Tickets)
            {
                if (ticket.CreatedDate.ToString("d") == dateago)
                {
                    tickets.Add(ticket);
                }
            }

            TicketData1.DayofWeek = DateTime.Now.Date.AddDays(-7).DayOfWeek.ToString();
            if (tickets.Count() != 0)
            {
                TicketData1.StatusA = tickets.Where(t => t.TicketPriority.Name == "Urgent").Count();
                TicketData1.StatusB = tickets.Where(t => t.TicketPriority.Name == "Normal").Count();
                TicketData1.StatusC = tickets.Where(t => t.TicketPriority.Name == "Low").Count();
                TicketChartList.Add(TicketData1);
            }
            else
            {
                TicketData1.StatusA = 0;
                TicketData1.StatusB = 0;     //makes sense go ahead and apply this to every case ok
                TicketData1.StatusC = 0;
                TicketChartList.Add(TicketData1);
            }

            var tickets2 = new List <Ticket>();

            foreach (var ticket in db.Tickets)
            {
                if (ticket.CreatedDate.ToString("d") == dateago2)
                {
                    tickets2.Add(ticket);
                }
            }

            TicketData TicketData3 = new TicketData();

            TicketData3.DayofWeek = DateTime.Now.Date.AddDays(-6).DayOfWeek.ToString();
            if (tickets2.Count() != 0)
            {
                TicketData3.StatusA = tickets2.Where(t => t.TicketPriority.Name == "Urgent").Count();
                TicketData3.StatusB = tickets2.Where(t => t.TicketPriority.Name == "Normal").Count();
                TicketData3.StatusC = tickets2.Where(t => t.TicketPriority.Name == "Low").Count();
                TicketChartList.Add(TicketData3);
            }
            else
            {
                TicketData3.StatusA = 0;
                TicketData3.StatusB = 0;
                TicketData3.StatusC = 0;
                TicketChartList.Add(TicketData3);
            }

            var tickets3 = new List <Ticket>();

            foreach (var ticket in db.Tickets)
            {
                if (ticket.CreatedDate.ToString("d") == dateago3)
                {
                    tickets3.Add(ticket);
                }
            }

            TicketData TicketData4 = new TicketData();

            TicketData4.DayofWeek = DateTime.Now.Date.AddDays(-5).DayOfWeek.ToString();

            if (tickets3.Count() != 0)
            {
                TicketData4.StatusA = tickets3.Where(t => t.TicketPriority.Name == "Urgent").Count();
                TicketData4.StatusB = tickets3.Where(t => t.TicketPriority.Name == "Normal").Count();
                TicketData4.StatusC = tickets3.Where(t => t.TicketPriority.Name == "Low").Count();
                TicketChartList.Add(TicketData4);
            }
            else
            {
                TicketData4.StatusA = 0;
                TicketData4.StatusB = 0;
                TicketData4.StatusC = 0;
                TicketChartList.Add(TicketData4);
            }


            var tickets4 = new List <Ticket>();

            foreach (var ticket in db.Tickets)
            {
                if (ticket.CreatedDate.ToString("d") == dateago4)
                {
                    tickets4.Add(ticket);
                }
            }


            TicketData TicketData5 = new TicketData();

            TicketData5.DayofWeek = DateTime.Now.Date.AddDays(-4).DayOfWeek.ToString();
            if (tickets4.Count() != 0)
            {
                TicketData5.StatusA = tickets4.Where(t => t.TicketPriority.Name == "Urgent").Count();
                TicketData5.StatusB = tickets4.Where(t => t.TicketPriority.Name == "Normal").Count();
                TicketData5.StatusC = tickets4.Where(t => t.TicketPriority.Name == "Low").Count();
                TicketChartList.Add(TicketData5);
            }
            else
            {
                TicketData5.StatusA = 0;
                TicketData5.StatusB = 0;
                TicketData5.StatusC = 0;
                TicketChartList.Add(TicketData5);
            }


            var tickets5 = new List <Ticket>();

            foreach (var ticket in db.Tickets)
            {
                if (ticket.CreatedDate.ToString("d") == dateago5)
                {
                    tickets5.Add(ticket);
                }
            }

            TicketData TicketData6 = new TicketData();

            TicketData6.DayofWeek = DateTime.Now.Date.AddDays(-3).DayOfWeek.ToString();
            if (tickets5.Count() != 0)
            {
                TicketData6.StatusA = tickets5.Where(t => t.TicketPriority.Name == "Urgent").Count();
                TicketData6.StatusB = tickets5.Where(t => t.TicketPriority.Name == "Normal").Count();
                TicketData6.StatusC = tickets5.Where(t => t.TicketPriority.Name == "Low").Count();
                TicketChartList.Add(TicketData6);
            }
            else
            {
                TicketData6.StatusA = 0;
                TicketData6.StatusB = 0;
                TicketData6.StatusC = 0;
                TicketChartList.Add(TicketData6);
            }

            var tickets6 = new List <Ticket>();

            foreach (var ticket in db.Tickets)
            {
                if (ticket.CreatedDate.ToString("d") == dateago6)
                {
                    tickets6.Add(ticket);
                }
            }

            TicketData TicketData7 = new TicketData();

            TicketData7.DayofWeek = DateTime.Now.Date.AddDays(-2).DayOfWeek.ToString();
            if (tickets6.Count() != 0)
            {
                TicketData7.StatusA = tickets6.Where(t => t.TicketPriority.Name == "Urgent").Count();
                TicketData7.StatusB = tickets6.Where(t => t.TicketPriority.Name == "Normal").Count();
                TicketData7.StatusC = tickets6.Where(t => t.TicketPriority.Name == "Low").Count();
                TicketChartList.Add(TicketData7);
            }
            else
            {
                TicketData7.StatusA = 0;
                TicketData7.StatusB = 0;
                TicketData7.StatusC = 0;
                TicketChartList.Add(TicketData7);
            }

            var tickets7 = new List <Ticket>();

            foreach (var ticket in db.Tickets)
            {
                if (ticket.CreatedDate.ToString("d") == dateago7)
                {
                    tickets7.Add(ticket);
                }
            }

            TicketData TicketData8 = new TicketData();

            TicketData8.DayofWeek = DateTime.Now.Date.AddDays(-1).DayOfWeek.ToString();
            if (tickets7.Count() != 0)
            {
                TicketData8.StatusA = tickets7.Where(t => t.TicketPriority.Name == "Urgent").Count();
                TicketData8.StatusB = tickets7.Where(t => t.TicketPriority.Name == "Normal").Count();
                TicketData8.StatusC = tickets7.Where(t => t.TicketPriority.Name == "Low").Count();
                TicketChartList.Add(TicketData8);
            }
            else
            {
                TicketData8.StatusA = 0;
                TicketData8.StatusB = 0;
                TicketData8.StatusC = 0;
                TicketChartList.Add(TicketData8);
            }


            List <UserData2> UserChartList = new List <UserData2>();
            UserRolesHelper  UH            = new UserRolesHelper(db);

            UserData2 User1      = new UserData2();
            var       AdminCount = UH.UsersInRole("Admin").Count();

            User1.label = "Administrator";
            User1.value = AdminCount;
            UserChartList.Add(User1);

            UserData2 User2     = new UserData2();
            var       DevCount1 = UH.UsersInRole("Developer1").Count();
            var       DevCount2 = UH.UsersInRole("Developer2").Count();
            var       DevCount3 = UH.UsersInRole("Developer3").Count();
            var       DevCount4 = UH.UsersInRole("Developer4").Count();

            User2.label = "Developers";
            User2.value = DevCount1 + DevCount2 + DevCount3 + DevCount4;
            UserChartList.Add(User2);

            UserData2 User3    = new UserData2();
            var       PMCount1 = UH.UsersInRole("Project Manager1").Count();
            var       PMCount2 = UH.UsersInRole("Project Manager2").Count();
            var       PMCount3 = UH.UsersInRole("Project Manager3").Count();


            User3.label = "Project Managers";
            User3.value = PMCount1 + PMCount2 + PMCount3;
            UserChartList.Add(User3);


            UserData2 User4          = new UserData2();
            var       SubmitterCount = UH.UsersInRole("Submitter").Count();

            User4.label = "Submitter";
            User4.value = SubmitterCount;
            UserChartList.Add(User4);



            ViewBag.ArrData2 = UserChartList.ToArray();
            ViewBag.ArrData  = TicketChartList.ToArray();

            UserRolesHelper     helper                    = new UserRolesHelper(db);
            ProjectAssignHelper ph                        = new ProjectAssignHelper();
            var                    userId                 = User.Identity.GetUserId();
            var                    user                   = db.Users.Find(userId);
            var                    userroleAdmin          = helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Administrator");
            var                    userroleDeveloper      = helper.IsUserInRole(userId, "Developer1") || helper.IsUserInRole(userId, "Developer2") || helper.IsUserInRole(userId, "Developer3") || helper.IsUserInRole(userId, "Developer4");
            var                    userroleProjectManager = helper.IsUserInRole(userId, "Project Manager1") || helper.IsUserInRole(userId, "Project Manager2") || helper.IsUserInRole(userId, "Project Manager3");
            var                    userroleSubmitter      = helper.IsUserInRole(userId, "Submitter");
            List <Project>         DeveloperProjects      = new List <Project>();
            List <ApplicationUser> Developers             = helper.UsersInRole("Developer1").Concat(helper.UsersInRole("Developer2")).Concat(helper.UsersInRole("Developer3")).Concat(helper.UsersInRole("Developer4")).ToList();



            List <Ticket>  usertickets  = new List <Ticket>();
            List <Project> userprojects = new List <Project>();

            if (helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Administrator"))
            {
                foreach (var project in db.Projects)
                {
                    if (ph.IsUserOnAProject(userId, project.Id))
                    {
                        userprojects.Add(project);
                    }
                }


                foreach (var ticket in db.Tickets)
                {
                    usertickets.Add(ticket);
                }
                var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");
                var unassignedtickets  = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                ViewBag.projectcount          = userprojects.Count();
                ViewBag.message           = "in the Bug Tracker system currently.";
                ViewBag.ticketmessage     = "in the Bug Tracker system currently.";
                ViewBag.unassignedmessage = "Unassigned tickets in the Bug Tracker system";
                if (urgenttickets.Count() == 0)
                {
                    ViewBag.urgentmessage = "There are no urgent tickets.";
                }
                else
                {
                    ViewBag.urgentmessage = "Please attend to these tickets if you are assigned to them.";
                }
                return(View(userprojects));
            }

            else if (userroleProjectManager)
            {
                foreach (var x in db.Projects)
                {
                    if (ph.IsUserOnAProject(userId, x.Id))
                    {
                        userprojects.Add(x);
                    }
                }

                foreach (var project in userprojects)
                {
                    foreach (var ticket in project.Tickets)
                    {
                        usertickets.Add(ticket);
                    }
                }
                var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");
                var unassignedtickets  = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                ViewBag.projectcount          = userprojects.Count();
                ViewBag.ticketmessage         = "for projects that you're working on.";
                ViewBag.message           = "that you're working on.";
                ViewBag.unassignedmessage = "Unassigned tickets in the Bug Tracker system";
                if (urgenttickets.Count() == 0)
                {
                    ViewBag.urgentmessage = "There are no urgent tickets.";
                }
                else
                {
                    ViewBag.urgentmessage = "Please attend to these tickets if you are assigned to them.";
                }

                return(View(userprojects));
            }


            else if (userroleDeveloper)
            {
                foreach (var x in db.Projects)
                {
                    if (ph.IsUserOnAProject(userId, x.Id))
                    {
                        userprojects.Add(x);
                    }
                }

                foreach (var project in userprojects)
                {
                    foreach (var ticket in project.Tickets)
                    {
                        usertickets.Add(ticket);
                    }
                }

                var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");

                var unassignedtickets = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                var urgentticketscount = urgenttickets.Count();
                ViewBag.projectcount      = userprojects.Count();
                ViewBag.unassignedmessage = "Unassigned tickets in the Bug Tracker system";
                ViewBag.ticketmessage     = "for projects that you're working on.";
                ViewBag.message           = "that you're working on.";
                if (urgentticketscount == 0)
                {
                    ViewBag.urgentmessage = "There are no urgent tickets.";
                }
                else
                {
                    ViewBag.urgentmessage = "Please attend to these tickets if you are assigned to them.";
                }
                return(View(userprojects));
            }

            else if (userroleSubmitter)
            {
                var submittertickets = db.Tickets.Where(t => t.SubmitterUserId == userId).ToList();

                var nonarchivedtickets = submittertickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");
                var unassignedtickets  = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                ViewBag.projectcount          = userprojects.Count();
                ViewBag.ticketmessage         = "that you've submitted.";
                ViewBag.projectmessage        = "N/A";
                ViewBag.urgentmessage         = "N/A";
                ViewBag.unassignedmessage     = "Unassigned tickets in the Bug Tracker system";

                var projects = db.Projects.ToList();
                return(View(projects));
            }
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 12
0
        // GET: Projects
        public ActionResult Index()

        {
            UserRolesHelper     helper                    = new UserRolesHelper(db);
            ProjectAssignHelper ph                        = new ProjectAssignHelper();
            var                    userId                 = User.Identity.GetUserId();
            var                    user                   = db.Users.Find(userId);
            var                    userroleAdmin          = helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Administrator");
            var                    userroleDeveloper      = helper.IsUserInRole(userId, "Developer1") || helper.IsUserInRole(userId, "Developer2") || helper.IsUserInRole(userId, "Developer3") || helper.IsUserInRole(userId, "Developer4");
            var                    userroleProjectManager = helper.IsUserInRole(userId, "Project Manager1") || helper.IsUserInRole(userId, "Project Manager2") || helper.IsUserInRole(userId, "Project Manager3");
            var                    userroleSubmitter      = helper.IsUserInRole(userId, "Submitter");
            List <Project>         DeveloperProjects      = new List <Project>();
            List <ApplicationUser> Developers             = helper.UsersInRole("Developer1").Concat(helper.UsersInRole("Developer2")).Concat(helper.UsersInRole("Developer3")).Concat(helper.UsersInRole("Developer4")).ToList();
            var                    projects               = db.Projects.Include(p => p.Users).ToList();



            ViewBag.user = user.FirstName + " " + user.LastName;



            List <Ticket>  usertickets  = new List <Ticket>();
            List <Project> userprojects = new List <Project>();

            if (helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Administrator"))
            {
                foreach (var project in db.Projects)
                {
                    userprojects.Add(project);
                }


                foreach (var ticket in db.Tickets)
                {
                    usertickets.Add(ticket);
                }
                var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");
                var unassignedtickets  = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                ViewBag.projectcount          = userprojects.Count();
                ViewBag.message           = "in the Bug Tracker system currently.";
                ViewBag.ticketmessage     = "in the Bug Tracker system currently.";
                ViewBag.unassignedmessage = "Unassigned tickets in the Bug Tracker system";
                if (urgenttickets.Count() == 0)
                {
                    ViewBag.urgentmessage = "There are no urgent tickets.";
                }
                else
                {
                    ViewBag.urgentmessage = "Please attend to these tickets if you are assigned to them.";
                }
                return(View(userprojects));
            }

            else if (userroleProjectManager)
            {
                foreach (var x in db.Projects)
                {
                    if (ph.IsUserOnAProject(userId, x.Id))
                    {
                        userprojects.Add(x);
                    }
                }

                foreach (var project in userprojects)
                {
                    foreach (var ticket in project.Tickets)
                    {
                        usertickets.Add(ticket);
                    }
                }
                var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");
                var unassignedtickets  = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                ViewBag.projectcount          = userprojects.Count();
                ViewBag.ticketmessage         = "for projects that you're working on.";
                ViewBag.message           = "that you're working on.";
                ViewBag.unassignedmessage = "Unassigned tickets in the Bug Tracker system";
                if (urgenttickets.Count() == 0)
                {
                    ViewBag.urgentmessage = "There are no urgent tickets.";
                }
                else
                {
                    ViewBag.urgentmessage = "Please attend to these tickets if you are assigned to them.";
                }

                return(View(userprojects));
            }


            else if (userroleDeveloper)
            {
                foreach (var x in db.Projects)
                {
                    if (ph.IsUserOnAProject(userId, x.Id))
                    {
                        userprojects.Add(x);
                    }
                }

                foreach (var project in userprojects)
                {
                    foreach (var ticket in project.Tickets)
                    {
                        usertickets.Add(ticket);
                    }
                }

                var nonarchivedtickets = usertickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");

                var unassignedtickets = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                var urgentticketscount = urgenttickets.Count();
                ViewBag.projectcount      = userprojects.Count();
                ViewBag.unassignedmessage = "Unassigned tickets in the Bug Tracker system";
                ViewBag.ticketmessage     = "for projects that you're working on.";
                ViewBag.message           = "that you're working on.";
                if (urgentticketscount == 0)
                {
                    ViewBag.urgentmessage = "There are no urgent tickets.";
                }
                else
                {
                    ViewBag.urgentmessage = "Please attend to these tickets if you are assigned to them.";
                }
                return(View(userprojects));
            }

            else if (userroleSubmitter)
            {
                var tickets = db.Tickets.Where(t => t.SubmitterUserId == userId).ToList();

                foreach (var x in db.Projects)
                {
                    if (ph.IsUserOnAProject(userId, x.Id))
                    {
                        userprojects.Add(x);
                    }
                }



                var nonarchivedtickets = tickets.Where(t => t.TicketStatus.Name != "Archived");
                var urgenttickets      = nonarchivedtickets.Where(t => t.TicketPriority.Name == "Urgent");
                var unassignedtickets  = nonarchivedtickets.Where(t => t.TicketStatus.Name == "Unassigned");
                ViewBag.unassignedticketcount = unassignedtickets.Count();
                ViewBag.ticketcount           = nonarchivedtickets.Count();
                ViewBag.urgentticketcount     = urgenttickets.Count();
                ViewBag.projectcount          = userprojects.Count();
                ViewBag.ticketmessage         = "that you've submitted.";
                ViewBag.projectmessage        = "N/A";
                ViewBag.urgentmessage         = "N/A";
                ViewBag.unassignedmessage     = "Unassigned tickets in the Bug Tracker system";

                return(View(userprojects));
            }
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 13
0
        public ActionResult Index()
        {
            var id = User.Identity.GetUserId();
            ProjectAssignHelper helper = new ProjectAssignHelper();
            var result = helper.ListUserProjects(id);

            ViewBag.UserTimeZone = db.Users.Find(User.Identity.GetUserId()).TimeZone;

            var thisMonth  = System.DateTime.Now;
            var lastMonth  = System.DateTime.Now.AddMonths(-1);
            var monthsAgo2 = System.DateTime.Now.AddMonths(-2);
            var monthsAgo3 = System.DateTime.Now.AddMonths(-3);
            var monthsAgo4 = System.DateTime.Now.AddMonths(-4);
            var monthsAgo5 = System.DateTime.Now.AddMonths(-5);

            ViewBag.ThisMonth  = thisMonth.ToString("MMMM");
            ViewBag.LastMonth  = lastMonth.ToString("MMMM");
            ViewBag.MonthsAgo2 = monthsAgo2.ToString("MMMM");
            ViewBag.MonthsAgo3 = monthsAgo3.ToString("MMMM");
            ViewBag.MonthsAgo4 = monthsAgo4.ToString("MMMM");
            ViewBag.MonthsAgo5 = monthsAgo5.ToString("MMMM");

            ViewBag.TicketsAddedThisMonth  = db.Tickets.Where(t => t.Created.Month == thisMonth.Month && t.Created.Year == thisMonth.Year).Count();
            ViewBag.TicketsAddedLastMonth  = db.Tickets.Where(t => t.Created.Month == lastMonth.Month && t.Created.Year == lastMonth.Year).Count();
            ViewBag.TicketsAdded2MonthsAgo = db.Tickets.Where(t => t.Created.Month == monthsAgo2.Month && t.Created.Year == monthsAgo2.Year).Count();
            ViewBag.TicketsAdded3MonthsAgo = db.Tickets.Where(t => t.Created.Month == monthsAgo3.Month && t.Created.Year == monthsAgo3.Year).Count();
            ViewBag.TicketsAdded4MonthsAgo = db.Tickets.Where(t => t.Created.Month == monthsAgo4.Month && t.Created.Year == monthsAgo4.Year).Count();
            ViewBag.TicketsAdded5MonthsAgo = db.Tickets.Where(t => t.Created.Month == monthsAgo5.Month && t.Created.Year == monthsAgo5.Year).Count();

            var completedThisMonth  = new List <Ticket>();
            var completedLastMonth  = new List <Ticket>();
            var completed2MonthsAgo = new List <Ticket>();
            var completed3MonthsAgo = new List <Ticket>();
            var completed4MonthsAgo = new List <Ticket>();
            var completed5MonthsAgo = new List <Ticket>();

            var completedTickets = db.Tickets.Where(t => t.TicketStatus.Name == "Completed").ToList();

            foreach (var ticket in completedTickets)
            {
                var ticketCompletedHistory = ticket.Histories.Last(t => t.Property == "Status" && t.NewValue == "Completed");
                if (ticketCompletedHistory != null)
                {
                    if (ticketCompletedHistory.Created.Month == thisMonth.Month && ticketCompletedHistory.Created.Year == thisMonth.Year)
                    {
                        completedThisMonth.Add(ticket);
                    }
                    else if (ticketCompletedHistory.Created.Month == lastMonth.Month && ticketCompletedHistory.Created.Year == lastMonth.Year)
                    {
                        completedLastMonth.Add(ticket);
                    }
                    else if (ticketCompletedHistory.Created.Month == monthsAgo2.Month && ticketCompletedHistory.Created.Year == monthsAgo2.Year)
                    {
                        completed2MonthsAgo.Add(ticket);
                    }
                    else if (ticketCompletedHistory.Created.Month == monthsAgo3.Month && ticketCompletedHistory.Created.Year == monthsAgo3.Year)
                    {
                        completed3MonthsAgo.Add(ticket);
                    }
                    else if (ticketCompletedHistory.Created.Month == monthsAgo4.Month && ticketCompletedHistory.Created.Year == monthsAgo4.Year)
                    {
                        completed4MonthsAgo.Add(ticket);
                    }
                    else if (ticketCompletedHistory.Created.Month == monthsAgo5.Month && ticketCompletedHistory.Created.Year == monthsAgo5.Year)
                    {
                        completed5MonthsAgo.Add(ticket);
                    }
                }
            }

            ViewBag.TicketsCompletedThisMonth  = completedThisMonth.Count();
            ViewBag.TicketsCompletedLastMonth  = completedLastMonth.Count();
            ViewBag.TicketsCompleted2MonthsAgo = completed2MonthsAgo.Count();
            ViewBag.TicketsCompleted3MonthsAgo = completed3MonthsAgo.Count();
            ViewBag.TicketsCompleted4MonthsAgo = completed4MonthsAgo.Count();
            ViewBag.TicketsCompleted5MonthsAgo = completed5MonthsAgo.Count();

            return(View(result));
        }
Ejemplo n.º 14
0
        public async Task <ActionResult> Create([Bind(Include = "Id,UserId,Description,CreatedDate")] TicketAttachment ticketAttachment, HttpPostedFileBase File, int Id)
        {
            UserRolesHelper     helper = new UserRolesHelper(db);
            ProjectAssignHelper ph     = new ProjectAssignHelper();
            var userId = User.Identity.GetUserId();
            var user   = db.Users.Find(userId);

            var ticket = db.Tickets.Find(Id);


            if (ModelState.IsValid)
            {
                if (helper.IsUserInRole(userId, "Administrator") || helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Project Manager1") && ph.IsUserOnAProject(userId, ticket.Project.Id) ||
                    helper.IsUserInRole(userId, "Project Manager2") && ph.IsUserOnAProject(userId, ticket.Project.Id) || helper.IsUserInRole(userId, "Project Manager3") && ph.IsUserOnAProject(userId, ticket.Project.Id) ||
                    helper.IsUserInRole(userId, "Developer1") && ticket.AssignedToUserId == userId || helper.IsUserInRole(userId, "Developer2") && ticket.AssignedToUserId == userId || helper.IsUserInRole(userId, "Developer3") && ticket.AssignedToUserId == userId ||
                    helper.IsUserInRole(userId, "Developer4") && ticket.AssignedToUserId == userId || helper.IsUserInRole(userId, "Submitter") && ticket.SubmitterUserId == userId)
                {
                    if (File != null)
                    {
                        TicketNotification TN = new TicketNotification();
                        TN.TicketId = ticket.Id;
                        TN.UserId   = ticket.AssignedToUserId;
                        TN.User     = ticket.AssignedToUser;
                        db.TicketNotifications.Add(TN);

                        var message = new IdentityMessage
                        {
                            Body = "The ticket" + " " + ticket.Title + " " + "from project" + " " + ticket.Project.Name + " " + "has been edited by" + " " + user.FirstName + user.LastName + "." + "  " +
                                   "Please see the ticket history to view the specific change.",
                            Subject     = "Your ticket has been edited",
                            Destination = TN.User.Email
                        };
                        EmailService email = new EmailService();
                        await email.SendAsync(message);

                        if (FileUploadValidator.IsWebFriendlyFile(File))

                        {
                            var fileName   = Path.GetFileName(File.FileName);
                            var customName = string.Format(Guid.NewGuid() + fileName);
                            File.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), customName));
                            ticketAttachment.FilePath = "/Uploads/" + customName;


                            string filename      = ticketAttachment.FilePath.ToString();
                            string word          = ".docx";
                            string excel         = ".xls";
                            string excelx        = "xlsx";
                            string pdf           = ".pdf";
                            string jpeg          = ".jpeg";
                            string bmp           = ".bmp";
                            string gif           = ".gif";
                            string zip           = ".zip";
                            string rar           = ".rar";
                            string ticketmessage = "";
                            if (filename.Contains(word))
                            {
                                ticketmessage = "This is a Word Document";
                            }
                            else if (filename.Contains(excel))
                            {
                                ticketmessage = "This is an Excel File";
                            }
                            else if (filename.Contains(pdf))
                            {
                                ticketmessage = "This is an PDF File";
                            }
                            else if (filename.Contains(jpeg))
                            {
                                ticketmessage = "This is a JPEG File";
                            }
                            else if (filename.Contains(bmp))
                            {
                                ticketmessage = "This is a BMP File";
                            }
                            else if (filename.Contains(gif))
                            {
                                ticketmessage = "This is a .gif File";
                            }
                            else if (filename.Contains(zip))
                            {
                                ticketmessage = "This is an ZIP File";
                            }
                            else if (filename.Contains(rar))
                            {
                                ticketmessage = "This is a RAR File";
                            }
                            else if (filename.Contains(excelx))
                            {
                                ticketmessage = "This is an .xlsx File";
                            }



                            ticketAttachment.CreatedDate = DateTimeOffset.Now;
                            var ticketdatestring = ticketAttachment.CreatedDate.ToString("MM-dd-yyyy");
                            ticketAttachment.TicketId    = Id;
                            ticketAttachment.Description = ticketmessage + " " + "added by" + " " + user.FirstName + " " + user.LastName + " " + "on" + " " + ticketdatestring + ".";
                            ticketAttachment.UserId      = userId;

                            db.TicketAttachments.Add(ticketAttachment);
                            db.SaveChanges();
                        }
                        int id = Id;
                        return(RedirectToAction("Details", "Tickets", new { id = id }));
                    }
                    else
                    {
                        var Temporary = "Please select an image between 1KB - 2MB and in an approved format(.jpg, .bmp, .png, .gif)";
                        TempData["attachmentmessage"] = Temporary;
                    }
                }
                var Temporary3 = "You cannot edit this ticket.  Please revisit your role assignment.  Tickets can only be edited by their creator, a developer assigned to the ticket, a project manager, or an administrator.";
                TempData["message"] = Temporary3;
                return(RedirectToAction("Details", "Tickets", new { id = Id }));
            }

            ViewBag.TicketId = new SelectList(db.Tickets, "Id", "SubmitterUserId", ticketAttachment.TicketId);
            ViewBag.UserId   = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId);
            return(View(ticketAttachment));
        }
Ejemplo n.º 15
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));
        }
Ejemplo n.º 16
0
        public ActionResult Create(Project project, List <string> Developers)
        {
            ProjectAssignHelper PA = new ProjectAssignHelper();

            if (ModelState.IsValid)
            {
                int openId = db.ProjectStatuses.FirstOrDefault(p => p.Name == "Open").Id;
                project.ProjectStatusId  = openId;
                project.ProjectStartDate = DateTime.Now;

                var user = db.Users.Find(project.ProjectManagerId);
                project.ProjectManagerName = user.FirstName + " " + user.LastName;
                db.Projects.Add(project);
                db.SaveChanges();

                if (project.ProjectManagerId != null)
                {
                    PA.AddUserToAProject(project.ProjectManagerId, project.Id);
                }

                db.SaveChanges();

                if (Developers != null)
                {
                    foreach (var userId in Developers)
                    {
                        helper.AddUserToAProject(userId, project.Id);
                    }
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }

            List <ApplicationUser> ProjectManagerId = new List <ApplicationUser>();
            List <ApplicationUser> DeveloperId      = new List <ApplicationUser>();
            UserRolesHelper        uhHelper         = new UserRolesHelper(db);



            var PMs  = uhHelper.UsersInRole("Project Manager1");
            var PMs2 = uhHelper.UsersInRole("Project Manager2");
            var PMs3 = uhHelper.UsersInRole("Project Manager3");
            var AD   = uhHelper.UsersInRole("Admin");
            var AD2  = uhHelper.UsersInRole("Administrator");

            foreach (var PM in PMs)
            {
                ProjectManagerId.Add(PM);
            }
            foreach (var PM in PMs2)
            {
                ProjectManagerId.Add(PM);
            }
            foreach (var PM in PMs3)
            {
                ProjectManagerId.Add(PM);
            }

            var Devs1 = uhHelper.UsersInRole("Developer1");
            var Devs2 = uhHelper.UsersInRole("Developer2");
            var Devs3 = uhHelper.UsersInRole("Developer3");
            var Devs4 = uhHelper.UsersInRole("Developer4");

            foreach (var dev in Devs1)
            {
                DeveloperId.Add(dev);
            }
            foreach (var dev in Devs2)
            {
                DeveloperId.Add(dev);
            }
            foreach (var dev in Devs3)
            {
                DeveloperId.Add(dev);
            }
            foreach (var dev in Devs4)
            {
                DeveloperId.Add(dev);
            }


            ViewBag.Users            = new MultiSelectList(DeveloperId, "Id", "FullName");
            ViewBag.ProjectManagerId = new SelectList(ProjectManagerId, "Id", "FullName");

            var modelErrors = new List <string>();

            foreach (var modelState in ModelState.Values)
            {
                foreach (var modelError in modelState.Errors)
                {
                    modelErrors.Add(modelError.ErrorMessage);
                }
            }

            ViewBag.Errors = modelErrors;

            return(View());
        }