public ActionResult UnassignProject(ProjectManagerViewModel model, int projectId)
        {
            //var FindUserToPost = db.Users.Find(model.Id);
            //var projectID = db.Projects.Find(projectId);
            ProjectHelper projectHelp = new ProjectHelper(db);
            //foreach (var RemoveProject in db.Projects.Select(r => r.Name).ToList())
            //{
            //    projectHelp.RemoveUserToProject(model.Id, projectId);
            //}
            var ListPModel = new List <ApplicationUser>();
            var PManagers  = db.Roles.All(r => r.Name == "ProjectManager");
            var project    = new Projects();

            foreach (var PMid in model.SelectedProjectManager)
            {
                projectHelp.RemoveUserFromProject(PMid, projectId);
            }
            return(RedirectToAction("Index", "Projects"));
        }
        public ActionResult AssignTicket(ProjectManagerViewModel model, int tId, int pId)
        {
            ApplicationDbContext db   = new ApplicationDbContext();
            var           PModel      = new ProjectManagerViewModel();
            ProjectHelper projectHelp = new ProjectHelper(db);

            model.Pid = pId;
            var currDev = db.Users.Find(model.Id);

            if (ModelState.IsValid)
            {
                foreach (var DevId in model.SelectedDevelopers)
                {
                    projectHelp.AddDevToTicket(DevId, tId);

                    projectHelp.RemoveT(tId, DevId);
                }
            }
            var Devs = db.Roles.FirstOrDefault(r => r.Name == "Developer");

            ViewBag.Developer = new SelectList(Devs.Id, "Id", "Name");
            //ViewBag.AssignedToId = new SelectList(db.Users, "Id", "FirstName", tickets.AssignedToId);
            return(RedirectToAction("Details", "Projects", new { id = pId }));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> AssignTicket(ProjectManagerViewModel model, int tId, int pId)
        {
            ApplicationDbContext db   = new ApplicationDbContext();
            var           PModel      = new ProjectManagerViewModel();
            ProjectHelper projectHelp = new ProjectHelper(db);

            model.Pid = pId;
            var ticket  = db.Tickets.Find(tId);
            var currDev = db.Users.Find(model.Id);

            if (ModelState.IsValid)
            {
                foreach (var DevId in model.SelectedDevelopers)
                {
                    projectHelp.AddDevToTicket(DevId, tId);

                    projectHelp.RemoveT(tId, DevId);


                    //Send Email
                    var svc = new EmailService();
                    var msg = new IdentityMessage();
                    msg.Subject = "New Ticket Assignment";
                    msg.Body    = "\r\n You have recieved a new ticket assignment," + ticket.Title + "with the follow description" + ticket.Description + "and Id," + ticket.Id + "\r\n";

                    msg.Destination = currDev.Email;

                    await svc.SendAsync(msg);
                }
            }
            var Devs = db.Roles.FirstOrDefault(r => r.Name == "Developer");

            ViewBag.Developer = new SelectList(Devs.Id, "Id", "Name");
            //ViewBag.AssignedToId = new SelectList(db.Users, "Id", "FirstName", tickets.AssignedToId);
            return(RedirectToAction("Details", "Projects", new { id = pId }));
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToId")] Tickets model)
        {
            var           user        = db.Users.Find(User.Identity.GetUserId());
            ProjectHelper HistoryHelp = new ProjectHelper(db);

            var tickets = db.Tickets.Find(model.Id);
            var noty    = new TicketNotifications();

            noty.open = false;

            if (!(tickets.Title == model.Title) || (tickets.TicketPriorityId == model.TicketPriorityId) || (tickets.TicketStatusId == model.TicketStatusId) ||
                (tickets.AssignedToId == model.AssignedToId) || (tickets.ProjectId == model.ProjectId) || (tickets.TicketTypeId == model.TicketTypeId))
            {
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.Title, model.Title, "Title");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketPriorityId.ToString(), model.TicketPriorityId.ToString(), "TicketPriority");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketStatusId.ToString(), model.TicketStatusId.ToString(), "TicketStatus");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketTypeId.ToString(), model.TicketTypeId.ToString(), "TicketType");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.ProjectId.ToString(), model.ProjectId.ToString(), "Project");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.Description, model.Description, "Description");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.AssignedToId, model.AssignedToId, "AssignedTo");
                HistoryHelp.AddNoty(tickets.Id, user.Id, noty.open);
            }


            tickets.TicketPriorityId = model.TicketPriorityId;
            tickets.TicketStatusId   = model.TicketStatusId;
            tickets.OwnerUserId      = user.Id;
            tickets.Created          = tickets.Created = DateTime.Now;
            var project = db.Projects.Find(tickets.Id);

            db.Tickets.Add(model);


            if (ModelState.IsValid)
            {
                db.Entry(tickets).State = EntityState.Modified;
                db.SaveChanges();

                var svc = new EmailService();
                var msg = new IdentityMessage();
                msg.Subject = "Ticket Edited";
                msg.Body    = "\r\n You have a new edit on the ticket titled," + tickets.Title + "with the following description:" + tickets.Description + "\r\n";

                //var users = db.Users.Where(p => p.Projects.Any(u => u.Id == ))
                msg.Destination = project.Users.Select(u => u.Email).ToString();

                await svc.SendAsync(msg);


                return(RedirectToAction("myIndex", "Tickets"));
            }
            //ViewBag.AssignedToId = new SelectList(db.Users, "Id", "FirstName", tickets.AssignedToId);
            //ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", tickets.OwnerUserId);
            ViewBag.ProjectId        = new SelectList(db.Projects, "Id", "Name", tickets.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", tickets.TicketPriorityId);
            ViewBag.TicketStatusId   = new SelectList(db.TicketStatuses, "Id", "Name", tickets.TicketStatusId);
            ViewBag.TicketTypeId     = new SelectList(db.TicketTypes, "Id", "Name", tickets.TicketTypeId);


            return(View("myIndex", "Tickets"));
        }