Exemple #1
0
        public ActionResult Details(int id)
        {
            Ticket ticketref = db.Tickets.Find(id);
            var    userId    = User.Identity.GetUserId();
            var    proj      = ticketref.ProjectId;

            if (User.IsInRole("Submitter") && userId != ticketref.OwnerUserId)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }
            if (User.IsInRole("Developer") && userId != ticketref.AssignedToUserId)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }
            var isuseronproject = projectHelper.IsUserOnProject(userId, proj);

            if (User.IsInRole("Project Manager") && !isuseronproject)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }

            Ticket ticket = db.Tickets.Include(t => t.TicketHistories).Include(t => t.TicketAttachments).Include(t => t.TicketComments).FirstOrDefault(t => t.Id == id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            return(View(ticket));
        }
        public async Task <ActionResult> EditUsers([Bind(Include = "Users,Project,SelectedUsers")] ProjectViewModel model, TicketNotification ticketNotification)
        {
            ProjectHelper helper = new ProjectHelper();

            foreach (var user in db.Users)
            {
                if (helper.IsUserOnProject(user.Id, model.Project.Id))
                {
                    helper.RemoveUserFromProject(user.Id, model.Project.Id);
                }
            }
            foreach (var user in model.SelectedUsers)
            {
                if (!helper.IsUserOnProject(user, model.Project.Id))
                {
                    helper.AddUserToProject(user, model.Project.Id);
                    //userManager.SendEmailAsync(user, "Notification", "You have been added to project " + model.Project.Name);
                    var callbackUrl = Url.Action("Details", "Projects", new { id = model.Project.Id }, protocol: Request.Url.Scheme);
                    try
                    {
                        EmailService    ems = new EmailService();
                        IdentityMessage msg = new IdentityMessage();
                        ApplicationUser usr = db.Users.Find(user);
                        msg.Body        = "You have been added to a Project." + Environment.NewLine + "Please click the following link to view the details" + "<a href=\"" + callbackUrl + "\">PROJECT</a>";
                        msg.Destination = usr.Email;
                        msg.Subject     = "BugTracker";
                        await ems.SendMailAsync(msg);
                    }
                    catch (Exception ex)
                    {
                        await Task.FromResult(0);
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult Details(int id)
        {
            var isOnProj = projectHelper.IsUserOnProject(User.Identity.GetUserId(), id);

            if (User.IsInRole("Project Manager") && !isOnProj)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Project project = db.Projects.Find(id);

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