// GET: Tickets public ActionResult Index() { if (User.Identity.GetUserId() == null) { return(RedirectToAction("Index", "Home")); } var tickets = new List <Ticket>(); var ticketsVM = new IndexTicketViewModel(); //var users = roleHelper.UsersInRole("Developer"); //var userOnCurrentProject = projectHelper.UsersInProject() ViewBag.AssignedToUserId = new SelectList(roleHelper.UsersInRole("Developer"), "Id", "FirstName"); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name"); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name"); ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name"); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name"); ViewBag.AssignUsers = new SelectList(db.Users, "Id", "FullName"); ViewBag.UsersIds = new MultiSelectList(db.Users, "Id", "FullName"); var loggedInUser = User.Identity.GetUserId(); if (User.IsInRole("Admin") || User.IsInRole("DemoAdmin")) { //tickets = db.Tickets.Include(t => t.AssignedToUser).Include(t => t.Project).Include(t => t.TicketPriority).Include(t => t.TIcketStatus).Include(t => t.TicketType).ToList(); tickets = db.Tickets.OrderByDescending(t => t.TicketPriorityId).ToList(); } else if (User.IsInRole("Submitter") || User.IsInRole("DemoSubmitter")) { tickets = db.Tickets.Where(t => t.OwnerUserId == loggedInUser).ToList(); } else if (User.IsInRole("Developer") || User.IsInRole("DemoDeveloper")) { tickets = db.Tickets.Where(t => t.AssignedToUserId == loggedInUser).ToList(); } else if (User.IsInRole("Project Manager") || User.IsInRole("Admin")) { var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); tickets.AddRange(user.Projects.SelectMany(p => p.Tickets)); //ICollection<Project> projects = projectHelper.ListUserProjects(loggedInUser); //foreach (var project in projects) //{ // foreach (var tick in project.Tickets) // { // tickets.Add(tick); // } //} } ticketsVM.Tickets = tickets; ticketsVM.Users = db.Users.ToList(); return(View(ticketsVM)); }
// GET: Ticket public async Task <ActionResult> Index() { var model = new IndexTicketViewModel(); if (CurrentDrawing != null) { model.Tickets = await repository.GetNotPayedTicketsAsync(CurrentUser.Id); } return(View(model)); }
public async Task <ActionResult> PurchasedTickets() { var model = new IndexTicketViewModel(); if (CurrentDrawing != null) { model.Tickets = await repository.GetTicketsByUserDrawingIdsAsync(CurrentUser.Id, CurrentDrawing.Id); } return(View("Index", model)); }
public async Task <ActionResult> CreateComment(IndexTicketViewModel formdata, string ticketId) { var currentUserId = User.Identity.GetUserId(); var ticket = DbContext.Tickets.FirstOrDefault(p => p.Id == ticketId); if (ticket == null || ticket.Project.Archived == true) { return(RedirectToAction("AllTickets", "Tickets")); } var currentUser = DbContext.Users.FirstOrDefault(p => p.Id == currentUserId); var isUserAssigned = ticket.AssignedMembers.Any(p => p.Id == currentUserId); var isUserOwner = ticket.TicketOwnerId == currentUserId; var isUserADeveloperAndSubmitter = User.IsInRole("Developer") && User.IsInRole("Submitter"); if (!User.IsInRole("Admin") && !User.IsInRole("Project Manager")) { if (isUserADeveloperAndSubmitter && !isUserAssigned && !isUserOwner) { return(RedirectToAction("ViewTicket", "Tickets", new { id = ticketId })); } else if (User.IsInRole("Developer") && !isUserAssigned && !User.IsInRole("Submitter")) { return(RedirectToAction("ViewTicket", "Tickets", new { id = ticketId })); } else if (User.IsInRole("Submitter") && !isUserOwner && !User.IsInRole("Developer")) { return(RedirectToAction("ViewTicket", "Tickets", new { id = ticketId })); } } var comment = new Comment(); comment.CommentCreatorId = currentUserId; comment.TicketId = ticketId; comment.CommentData = formdata.CommentData; ticket.Comments.Add(comment); currentUser.Comments.Add(comment); DbContext.Comments.Add(comment); DbContext.SaveChanges(); await RolesAndUsersHelper.MassEmailSender(ticket.Id, "Modify"); return(RedirectToAction("ViewTicket", "Tickets", new { id = ticketId })); }