// GET: Tickets/Edit/5 public ActionResult Edit(int?id) { var nHelper = new UserNotificationsHelper(); ViewBag.Notifications = nHelper.filterNotifications(User.Identity.GetUserId()); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var tHelper = new UserHelper(); Ticket ticket = tHelper.FindTicket((int)id); if (ticket == null) { return(HttpNotFound()); } TempData["Ticket"] = ticket; var rHelper = new UserRolesHelper(); ViewBag.AssignedToUserId = new SelectList(rHelper.UsersInRole("Developer"), "Id", "FirstName", ticket.AssignedToUserId); 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); return(View(ticket)); }
public ActionResult Create() { var user = db.Users.Find(User.Identity.GetUserId()); var userTickets = ticketHelper.MyProjectTickets(user.Id).Where(t => t.Archived == false).ToList(); var userProjects = projectHelper.ListUserProjects(user.Id).Where(t => t.Archived == false).ToList(); var adminUsers = userRolesHelper.UsersInRole("Admin"); var usersOnProjects = new List <ApplicationUser>(); var tempUsers = new List <ApplicationUser>(); if (User.IsInRole("Admin")) { ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title"); ViewBag.UserId = new SelectList(db.Users, "Id", "DisplayName"); } else { foreach (var project in userProjects) { foreach (var currentUser in project.ProjectUsers) { tempUsers.Add(currentUser); } } foreach (var admin in adminUsers) { tempUsers.Add(admin); } usersOnProjects = tempUsers.Distinct().ToList(); //ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title"); ViewBag.TicketId = new SelectList(userTickets, "Id", "Title"); //ViewBag.UserId = new SelectList(db.Users, "Id", "DisplayName"); ViewBag.UserId = new SelectList(usersOnProjects, "Id", "DisplayName"); } return(View()); }
public async Task <ActionResult> Edit([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId,Archived")] Ticket ticket, bool flag, HttpPostedFileBase attachment) { var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); if (ModelState.IsValid) { var userId = User.Identity.GetUserId(); ticket.Updated = DateTimeOffset.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); //Check for changes to ticket and create notifications await NHHelper.HistoryCreator(oldTicket, ticket, userId); if (flag) { return(RedirectToAction("UserIndex")); } return(RedirectToAction("Index")); } var devList = rolesHelper.UsersInRole("Developer"); ViewBag.AssignedToUserId = new SelectList(devList, "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); 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.UserIndexFlag = flag; return(View(ticket)); }
public ActionResult AssignTicket(int?id) { UserRolesHelper helper = new UserRolesHelper(); var ticket = db.Tickets.Find(id); var users = helper.UsersInRole("Developer").ToList(); ViewBag.AssignedToUserId = new SelectList(users, "Id", "FullName"); return(View(ticket)); }
public ActionResult AssignPm(int?id) { UserRolesHelper helper = new UserRolesHelper(); var project = db.Projects.Find(id); var users = helper.UsersInRole("ProjectManager").ToList(); ViewBag.PMID = new SelectList(users, "Id", "FirstName", project.PMID); return(View(project)); }
public ActionResult Edit(int?id, string projectId) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Project project = db.Projects.Find(id); if (project == null) { return(HttpNotFound()); } var Dev = roleHelper.UsersInRole("Developer"); ViewBag.Developers = new MultiSelectList(Dev, "Id", "Email"); return(View(project)); }
public ActionResult Edit(int?id) { var userId = User.Identity.GetUserId(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } var tAssigned = roleHelper.UsersInRole("Developer"); var myProjects = projHelper.ListUserProjects(userId); var myTickets = tickHelper.ListUserTickets(); ViewBag.Id = new SelectList(myTickets, "Id", "Name", ticket.Id); ViewBag.ProjectId = new SelectList(myProjects, "Id", "Name", ticket.ProjectId); ViewBag.AssignedToUserId = new SelectList(tAssigned, "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); 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); if (User.IsInRole("Admin") || ticket.AssignedToUserId == userId || ticket.OwnerUserId == userId) { return(View(ticket)); } if (ticket.AssignedToUserId != userId || ticket.OwnerUserId != userId) { TempData["OwnOnly"] = "I'm Sorry, You must be assigned to the ticket or the one who submitted it to make any changes."; return(RedirectToAction("Index", "Home")); } return(View(ticket)); }
// GET: Admin public ActionResult AssignPMs() { //Set up a MultiSelectList to display all the projects ViewBag.Projects = new MultiSelectList(db.Projects, "Id", "Name"); //Set up a SelectList to display all the PM's var projectManagers = roleHelper.UsersInRole("ProjectManager"); ViewBag.PMs = new SelectList(projectManagers, "Id", "DisplayName"); return(View()); }
public ActionResult AssignUser(int id) { Project project = db.Projects.Find(id); if (project == null) { return(RedirectToAction("Oops5", "Home", null)); } // 1. Setup a MultiSelectList to display all the Projects in our system var UsersOnProject = projectHelper.UsersOnProject(id); var projDevs = new List <string>(); var projSubs = new List <string>(); foreach (var devUser in UsersOnProject) { if (rolesHelper.IsUserInRole(devUser.Id, "Developer")) { projDevs.Add(devUser.Id); } } foreach (var subUser in UsersOnProject) { if (rolesHelper.IsUserInRole(subUser.Id, "Submitter")) { projDevs.Add(subUser.Id); } } var Developer = rolesHelper.UsersInRole("Developer"); ViewBag.Devs = new MultiSelectList(Developer, "Id", "DisplayName", projDevs); var Submitter = rolesHelper.UsersInRole("Submitter"); ViewBag.Subs = new MultiSelectList(Submitter, "Id", "DisplayName", projSubs); return(View(project)); }
public ActionResult Create() { var Helper = new UserNotificationsHelper(); ViewBag.Notifications = Helper.filterNotifications(User.Identity.GetUserId()); var rHelper = new UserRolesHelper(); ViewBag.AssignedToUserId = new SelectList(rHelper.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.TicketStatuses, "Id", "Name"); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name"); return(View()); }
// 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()); } ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name"); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name"); ViewBag.color = "green"; var allProjectManagers = roleHelper.UsersInRole("Project Manager"); var currentProjectManagers = projectHelper.UsersInRoleOnProject(project.Id, "Project Manager"); ViewBag.ProjectManagers = new MultiSelectList(allProjectManagers, "Id", "FullNameWithEmail", currentProjectManagers); var allSubmitters = roleHelper.UsersInRole("Submitter"); var currentSubmitters = projectHelper.UsersInRoleOnProject(project.Id, "Submitter"); ViewBag.Submitters = new MultiSelectList(allSubmitters, "Id", "FullNameWithEmail", currentSubmitters); var allDevelopers = roleHelper.UsersInRole("Developer"); var currentDevelopers = projectHelper.UsersInRoleOnProject(project.Id, "Developer"); ViewBag.Developers = new MultiSelectList(allDevelopers, "Id", "FullNameWithEmail", currentDevelopers); return(View(project)); }
public ActionResult ManageUserProjects() { ViewBag.ProjecstIds = new MultiSelectList(db.Projects, "Id", "Name"); ViewBag.UsersIds = new MultiSelectList(db.Users, "Id", "FullName"); if (User.IsInRole("Admin")) { ViewBag.UsersIds = new MultiSelectList(db.Users, "Id", "FullName"); } else if (User.IsInRole("Developer")) { ViewBag.UsersIds = new MultiSelectList(roleHelper.UsersInRole("Developer"), "Id", "FullName"); } //ViewBag.UsersIds = new MultiSelectList(roleHelper.UsersInRole("Developer"), "Id", "FullName"); //if(User.IsInRole("Admin")) //{ // ViewBag.ProjectManagerId = new SelectList(roleHelper.UsersInRole("Project Manager"), "Id", "Email"); //} // var myData = new List<UserProjectListViewModel>(); // UserProjectViewModel userVm = null; //foreach(var user in db.Users.ToList()) // { // userVm = new USerProjectListViewModel // { // Name = ${ user.LastName},{ user.FirstName}"," + // PRojectNames = projectHelper.ListOfProjects(user.Id).Select(p => p.Name).Count() == 0 ? "N/A" : projectHelper.ListOfProjects(user.Id).Select(p => p.Name).ToList(); // }; // myData.Add(userVm); // } var users = new List <ManageProjecstUsersViewModel>(); foreach (var user in db.Users.ToList()) { users.Add(new ManageProjecstUsersViewModel { FullName = $"{ user.LastName},{ user.FirstName}", RoleName = roleHelper.ListUserRoles(user.Id).FirstOrDefault(), Email = user.Email, ProjectName = projectHelper.ListOfProjects(user.Id) });; } return(View(users)); }
public ActionResult AdminAddToRole(ListViewModel selectedUser, string RoleName) { var nHelper = new UserNotificationsHelper(); ViewBag.Notifications = nHelper.filterNotifications(User.Identity.GetUserId()); var Helper = new UserRolesHelper(); foreach (var id in selectedUser.SelectednonUsers) { if (id != null) { Helper.AddUserToRole(id, RoleName); Helper.AddUserToRole(id, "Project Manager"); Helper.AddUserToRole(id, "Developer"); } } List <SelectListItem> listadminUsers = new List <SelectListItem>(); List <SelectListItem> listnonadminUsers = new List <SelectListItem>(); var result1 = Helper.UsersInRole(RoleName); foreach (var user in result1) { SelectListItem selectList = new SelectListItem() { Text = user.DispalyName, Value = user.Id }; listadminUsers.Add(selectList); } var result2 = Helper.UsersNotInRole(RoleName); foreach (var user in result2) { SelectListItem selectList = new SelectListItem() { Text = user.DispalyName, Value = user.Id }; listnonadminUsers.Add(selectList); } ListViewModel adminLViewModel = new ListViewModel() { zUsers = listadminUsers, otherUsers = listnonadminUsers }; return(View("AdminAccount", adminLViewModel)); }
public ActionResult AdminAccount() { var nHelper = new UserNotificationsHelper(); ViewBag.Notifications = nHelper.filterNotifications(User.Identity.GetUserId()); List <SelectListItem> listadminUsers = new List <SelectListItem>(); List <SelectListItem> listnonadminUsers = new List <SelectListItem>(); var adminHelper = new UserRolesHelper(); var result1 = adminHelper.UsersInRole("Admin"); foreach (var user in result1) { SelectListItem selectList = new SelectListItem() { Text = user.DispalyName, Value = user.Id }; listadminUsers.Add(selectList); } var result2 = adminHelper.UsersNotInRole("Admin"); foreach (var user in result2) { SelectListItem selectList = new SelectListItem() { Text = user.DispalyName, Value = user.Id }; listnonadminUsers.Add(selectList); } ListViewModel adminLViewModel = new ListViewModel() { zUsers = listadminUsers, otherUsers = listnonadminUsers }; return(View(adminLViewModel)); /*ViewBag.adminresult = result; * return View(result);*/ }
public ActionResult Details(int?id) { if (!id.HasValue) { return(RedirectToAction(nameof(TicketsController.Index))); } var ticket = Context.Tickets.FirstOrDefault(p => p.Id == id); if (ticket == null) { return(RedirectToAction(nameof(TicketsController.Index))); } var model = new DetailsTicketViewModel(); model.Developers = RoleHelper.UsersInRole("Developer") .Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.DisplayName }); model.Id = ticket.Id; model.Title = ticket.Title; model.Description = ticket.Description; model.Priority = ticket.Priority.Name; model.Project = ticket.Project.Name; model.Status = ticket.Status.Name; model.Type = ticket.Type.Name; model.Created = ticket.DateCreated; model.Comments = ticket.Comments; model.ChangeLogs = ticket.ChangeLogs; model.DevelopersId = ticket.AssignedToId; model.Attachments = ticket.Attachments; model.CreatedById = ticket.CreatedBy.DisplayName; return(View("Details", model)); }
public ActionResult EditPm(int?id) { UserRolesHelper urh = new UserRolesHelper(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } ViewBag.AssignedToUserId = new SelectList(urh.UsersInRole("Developer"), "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); 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); return(View(ticket)); }
public ActionResult DataStatsPerUser() { ApplicationDbContext db = new ApplicationDbContext(); UserRolesHelper userRoleHelper = new UserRolesHelper(); var allDeveloper = userRoleHelper.UsersInRole("Developer"); string[,] usersTicket = new String[2, allDeveloper.Count()]; for (var i = 0; i < allDeveloper.Count(); i++) { usersTicket[0, i] = allDeveloper.ElementAt(i).FullName; ApplicationUser developer = allDeveloper.ElementAt(i); usersTicket[1, i] = Convert.ToString(db.Tickets.Where(t => t.AssignedToUserId == developer.Id).ToList().Count()); } string output = JsonConvert.SerializeObject(usersTicket); return(Json(output)); //return Json(new { Name = project.Name, Description = project.Description, Created = project.Created.ToString("MMM dd,yyyy"), projectID, userId }); }
//GET: Admin/ManageRoles/(role) public ActionResult ManageRoles(string role) //When the administrator wants to add many users to a role at once they will click //the button that indicates which role they want to add users to. that button submits a url request that is processed and //matched to a pattern in the route.config file, which will direct to the 'ManageRoles' action method in the 'admin' controller. //the 'string role' parameter of this method receives the parameter indicated in the button that was clicked. The parameter will //be either 'admin', 'project manager', 'developer' or 'submitter'. { if (role == "Admin") { ViewBag.Title = "Manage Admin Role"; } else if (role == "Project Manager") { ViewBag.Title = "Manage Project Manager Role"; } else if (role == "Developer") { ViewBag.Title = "Manage Developer Role"; } else { ViewBag.Title = "Manage Submitter Role"; } var helper = new UserRolesHelper();//this creates a new instance of the 'UserRolesHelper' class. the 'helper' object has //all of the methods defined in the 'UserRolesHelper' class. ViewBag.AssignedUsers = new MultiSelectList(db.Users.ToList(), "Id", "DisplayName", helper.UsersInRole(role).Select(u => u.Id)); //the 'AssignedUsers' variable is a new instance of the 'MultiSelectList' class and is attached to the 'ViewBag' so that a //multiselect list can be created in the view. The parameters given to the 'MultiSelectList' object are 1.) a list of all users //in the database, 2.) the property that is going to be selectable in the list (the users Id), 3.) the property that will be displayed //in the multiselect list (the users DisplayName), 4.)...the 'UsersInRole' method is called from the 'helper' object and passed the //'role' parameter that was passed to the 'ManageRoles' action method. From the 'UsersInRole' method is returned a list of users //whose 'RoleId' value matches the 'Id' value for that role in the 'Roles' table. So, this multiselect list will be populated with //all of the Users in the database and the end user will see the user's display names and those display names will have the users' //id's tied to them and any user that the end user selects on that multiselect list will be added to the role specified. return(View());//return the ManageRoles view. }
public ActionResult Create([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,OwnerUserId,TicketStatusId,AssignedToUserId, TicketComments, TicketHistories, TicketAttachments")] Ticket ticket, ApplicationUser user, string comment, string descriptions, HttpPostedFileBase fileUpload) { var nHelper = new UserNotificationsHelper(); ViewBag.Notifications = nHelper.filterNotifications(User.Identity.GetUserId()); if (ModelState.IsValid) { ticket.OwnerUserId = User.Identity.GetUserId(); ticket.Created = System.DateTimeOffset.UtcNow; var Helper = new UserRolesHelper(); var anotherHelper = new UserHelper(); #region Notifications db.TicketNotifications.Add(new TicketNotification() { Notice = "You created a new ticket on " + ticket.Created.ToString(), TicketId = ticket.Id, UserId = ticket.OwnerUserId }); foreach (var auser in Helper.UsersInRole("Project Manager")) { db.TicketNotifications.Add(new TicketNotification() { Notice = anotherHelper.TicketOwner(ticket.OwnerUserId).DispalyName + " has created a new ticket on " + ticket.Created.ToString(), TicketId = ticket.Id, UserId = auser.Id }); } if (ticket.AssignedToUserId != null) { ticket.AssignedToUser = db.Users.Find(ticket.AssignedToUserId); db.TicketNotifications.Add(new TicketNotification() { Notice = "A ticket has been assigned to you on " + ticket.Created.ToString(), TicketId = ticket.Id, UserId = ticket.AssignedToUserId }); db.TicketNotifications.Add(new TicketNotification() { Notice = "Your ticket has been assigned to a developer on " + ticket.Created.ToString(), TicketId = ticket.Id, UserId = ticket.OwnerUserId }); } #endregion if (comment != "") { db.TicketComments.Add(new TicketComment() { TicketId = ticket.Id, Created = ticket.Created, UserId = ticket.OwnerUserId, Comment = comment }); } if (fileUpload != null && fileUpload.ContentLength > 0) { var attachment = new TicketAttachment(); attachment.FilePath = Path.GetFileName(fileUpload.FileName); attachment.TicketId = ticket.Id; attachment.Description = descriptions; attachment.Created = ticket.Created; attachment.UserId = ticket.OwnerUserId; attachment.FileUrl = "/Attachments/" + attachment.FilePath; var fileName = Path.GetFileName(fileUpload.FileName); fileUpload.SaveAs(Path.Combine(Server.MapPath("/Attachments"), attachment.FilePath)); db.TicketAttachments.Add(attachment); } db.Tickets.Add(ticket); db.SaveChanges(); return(RedirectToAction("Index")); } var rHelper = new UserRolesHelper(); ViewBag.AssignedToUserId = new SelectList(rHelper.UsersInRole("Developer"), "Id", "FirstName", ticket.AssignedToUserId); 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); return(View(ticket)); }
public ActionResult Edit([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,OwnerUserId,TicketPriorityId,TicketStatusId,AssignedToUserId,TicketComments,TicketHistories,TicketAttachments")] Ticket ticket, string comment, string descriptions, HttpPostedFileBase fileUpload) { Ticket pticket = TempData["Ticket"] as Ticket; var nHelper = new UserNotificationsHelper(); ViewBag.Notifications = nHelper.filterNotifications(User.Identity.GetUserId()); var anotherHelper = new UserHelper(); if (ModelState.IsValid) { ticket.Updated = System.DateTimeOffset.UtcNow; if (ticket.TicketStatusId == 0) { ticket.TicketStatusId = 1; } if (comment != "") { db.TicketComments.Add(new TicketComment() { TicketId = ticket.Id, Created = System.DateTimeOffset.UtcNow, UserId = ticket.OwnerUserId, Comment = comment }); } if (fileUpload != null && fileUpload.ContentLength > 0) { var attachment = new TicketAttachment(); attachment.FilePath = Path.GetFileName(fileUpload.FileName); attachment.TicketId = ticket.Id; attachment.Description = descriptions; attachment.Created = System.DateTimeOffset.UtcNow; attachment.UserId = ticket.OwnerUserId; attachment.FileUrl = "/Attachments/" + attachment.FilePath; var fileName = Path.GetFileName(fileUpload.FileName); fileUpload.SaveAs(Path.Combine(Server.MapPath("/Attachments"), attachment.FilePath)); db.TicketAttachments.Add(attachment); } #region Notifications if (fileUpload != null && fileUpload.ContentLength > 0 && comment != "") { db.TicketNotifications.Add(new TicketNotification() { Notice = User.Identity.Name + " added a new comment and attachment to the ticket on " + ticket.Updated.ToString(), TicketId = ticket.Id, UserId = User.Identity.GetUserId() }); var Helper = new UserRolesHelper(); foreach (var auser in Helper.UsersInRole("Project Manager")) { db.TicketNotifications.Add(new TicketNotification() { Notice = User.Identity.Name + " added a new comment and attachment to the ticket on " + ticket.Updated.ToString(), TicketId = ticket.Id, UserId = auser.Id }); } } else { if (fileUpload != null && fileUpload.ContentLength > 0) { db.TicketNotifications.Add(new TicketNotification() { Notice = User.Identity.Name + " added a new attachment to the ticket on " + ticket.Updated.ToString(), TicketId = ticket.Id, UserId = User.Identity.GetUserId() }); var Helper = new UserRolesHelper(); foreach (var auser in Helper.UsersInRole("Project Manager")) { db.TicketNotifications.Add(new TicketNotification() { Notice = User.Identity.Name + " added a new attachment to the ticket on " + ticket.Updated.ToString(), TicketId = ticket.Id, UserId = auser.Id }); } } if (comment != "") { db.TicketNotifications.Add(new TicketNotification() { Notice = User.Identity.Name + " added a new comment to the ticket on " + ticket.Updated.ToString(), TicketId = ticket.Id, UserId = User.Identity.GetUserId() }); var Helper = new UserRolesHelper(); foreach (var auser in Helper.UsersInRole("Project Manager")) { db.TicketNotifications.Add(new TicketNotification() { Notice = User.Identity.Name + " added a new comment to the ticket on " + ticket.Updated.ToString(), TicketId = ticket.Id, UserId = auser.Id }); } } } if (pticket.AssignedToUserId != ticket.AssignedToUserId) { db.TicketNotifications.Add(new TicketNotification() { Notice = "A ticket was assigned to you on with a priority: " + db.TicketPriorities.Find(ticket.TicketPriorityId).Name, TicketId = ticket.Id, UserId = ticket.AssignedToUserId }); db.TicketNotifications.Add(new TicketNotification() { Notice = "A Developer has been assigned to your ticket on " + ticket.Updated.ToString(), TicketId = ticket.Id, UserId = ticket.OwnerUserId }); } #endregion #region Histories if (pticket.ProjectId != ticket.ProjectId) { db.TicketHistories.Add(new TicketHistory() { TicketId = ticket.Id, UserId = ticket.OwnerUserId, OldValue = pticket.Project.Name, NewValue = db.Projects.Find(ticket.ProjectId).Name, Changed = ticket.Updated, Property = "Project/Catagory", }); } if (pticket.TicketStatusId != ticket.TicketStatusId) { db.TicketHistories.Add(new TicketHistory() { TicketId = ticket.Id, UserId = ticket.OwnerUserId, OldValue = pticket.TicketStatus.Name, NewValue = db.TicketStatuses.Find(ticket.TicketStatusId).Name, Changed = ticket.Updated, Property = "Ticket Status" }); } if (pticket.TicketTypeId != ticket.TicketTypeId) { db.TicketHistories.Add(new TicketHistory() { TicketId = ticket.Id, UserId = ticket.OwnerUserId, OldValue = pticket.TicketType.Name, NewValue = db.TicketTypes.Find(ticket.TicketTypeId).Name, Changed = ticket.Updated, Property = "Ticket Type" }); } if (ticket.TicketPriorityId != null && pticket.TicketPriorityId != ticket.TicketPriorityId) { if (pticket.TicketPriority == null) { db.TicketHistories.Add(new TicketHistory() { TicketId = ticket.Id, UserId = ticket.OwnerUserId, OldValue = "Not Set", NewValue = db.TicketPriorities.Find(ticket.TicketPriorityId).Name, Changed = ticket.Updated, Property = "Ticket Priority" }); } else { db.TicketHistories.Add(new TicketHistory() { TicketId = ticket.Id, UserId = ticket.OwnerUserId, OldValue = pticket.TicketPriority.Name, NewValue = db.TicketPriorities.Find(ticket.TicketPriorityId).Name, Changed = ticket.Updated, Property = "Ticket Priority" }); } } if (ticket.AssignedToUserId != null && ticket.AssignedToUserId != pticket.AssignedToUserId) { if (pticket.AssignedToUser == null) { db.TicketHistories.Add(new TicketHistory() { TicketId = ticket.Id, UserId = ticket.OwnerUserId, OldValue = "Not yet Assigned", NewValue = db.Users.Find(ticket.AssignedToUserId).DispalyName, Changed = ticket.Updated, Property = "Assigned Developer" }); } else { db.TicketHistories.Add(new TicketHistory() { TicketId = ticket.Id, UserId = ticket.OwnerUserId, OldValue = pticket.AssignedToUser.DispalyName, NewValue = db.Users.Find(ticket.AssignedToUserId).DispalyName, Changed = ticket.Updated, Property = "Assigned Developer" }); } } #endregion db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); //anotherHelper.TicketModified(ticket); return(RedirectToAction("Index")); } var rHelper = new UserRolesHelper(); ViewBag.AssignedToUserId = new SelectList(rHelper.UsersInRole("Developer"), "Id", "FirstName", ticket.AssignedToUserId); 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); return(View(ticket)); }
public ActionResult TestDashBoardView() { var model = new UserProfileViewModel(); var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); var ticketIndexVMs = new List <TicketIndexViewModel>(); var projectVMs = new List <ProjectViewModel>(); var allTickets = db.Tickets.ToList(); var allPojects = db.Projects.ToList(); var myTickets = ticketHelper.ListMyTickets(); var developers = roleHelper.UsersInRole("Dev").ToList(); var submitters = roleHelper.UsersInRole("Sub").ToList(); var projectManagers = roleHelper.UsersInRole("PM").ToList(); if (User.IsInRole("Dev") || User.IsInRole("Sub")) { foreach (var ticket in myTickets) { var ticketComments = new List <TicketComment>(); foreach (var comment in ticket.Comments) { if (comment.UserId == userId) { ticketComments.Add(comment); } } ticketIndexVMs.Add(new TicketIndexViewModel { Ticket = ticket, TicketStatus = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId), TicketPriority = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId), TicketType = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId), Developer = new SelectList(developers, "Id", "Email", ticket.DeveloperId), MyTicketComments = ticketComments }); } } if (User.IsInRole("Admin") || User.IsInRole("PM")) { foreach (var project in allPojects) { projectVMs.Add(new ProjectViewModel { Project = project, Developer = new SelectList(developers, "Id", "Email", project.DeveloperId), Submitter = new SelectList(submitters, "Id", "Email", project.SubmitterId), ProjectManger = new SelectList(projectManagers, "Id", "Email", project.ProjectManagerId) }); } foreach (var ticket in allTickets) { ticketIndexVMs.Add(new TicketIndexViewModel { Ticket = ticket, TicketStatus = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId), TicketPriority = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId), TicketType = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId), Developer = new SelectList(developers, "Id", "Email", ticket.DeveloperId), }); } } //var model = new UserProfileViewModel(); //var userId = User.Identity.GetUserId(); //var user = db.Users.Find(userId); // model.AvitarPath = user.AvatarPath; // model.FullName = user.FullName; model.Id = userId; model.ProjectsIn = projHelper.ListUserProjects(userId); model.ProjectsOut = db.Projects.ToList(); model.TicketsIn = ticketHelper.ListMyTickets(); model.TicetsOut = ticketHelper.ListTicketsNotBelongingToUser(); model.Role = roleHelper.ListUserRoles(userId).FirstOrDefault(); model.TicketsVM = ticketIndexVMs; model.ProjectVM = projectVMs; //foreach (var project in model.ProjectsOut) //{ //} return(View(model)); }
// GET: Tickets public ActionResult Index(string sortOrder, string currentFilter, int?page, string searchString, string myFilter, string myFilter2, string myFilter3, string myFilter4, string myFilter5, string myFilter6) { var Helper = new UserNotificationsHelper(); ViewBag.Notifications = Helper.filterNotifications(User.Identity.GetUserId()); var aHelper = new UserHelper(); var uHelper = new UserRolesHelper(); if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; ViewBag.myFilter = new SelectList(db.Projects, "Name", "Name"); ViewBag.myFilter2 = new SelectList(db.TicketTypes, "Name", "Name"); ViewBag.myFilter3 = new SelectList(db.TicketStatuses, "Name", "Name"); ViewBag.myFilter4 = new SelectList(db.TicketPriorities, "Name", "Name"); ViewBag.myFilter5 = new SelectList(db.Users, "DispalyName", "DispalyName"); ViewBag.myFilter6 = new SelectList(uHelper.UsersInRole("Project Manager"), "DispalyName", "DispalyName"); ViewBag.TitleSortParm = String.IsNullOrEmpty(sortOrder) ? "title" : ""; ViewBag.PNameSortParm = String.IsNullOrEmpty(sortOrder) ? "Pname" : ""; ViewBag.TtypeSortParm = String.IsNullOrEmpty(sortOrder) ? "ttypename" : ""; ViewBag.OwnerSortParm = String.IsNullOrEmpty(sortOrder) ? "owner" : ""; ViewBag.TstatusSortParm = String.IsNullOrEmpty(sortOrder) ? "tstatus" : ""; ViewBag.TprioritySortParm = String.IsNullOrEmpty(sortOrder) ? "tpriority" : ""; ViewBag.AssigneduserSortParm = String.IsNullOrEmpty(sortOrder) ? "assigneduser" : ""; ViewBag.CreatedSortParm = sortOrder == "created" ? "created_desc" : "created"; ViewBag.UpdatedSortParm = sortOrder == "updated" ? "updated_desc" : "updated"; //var tickets = aHelper.ListTicketsPM(); if (User.IsInRole("Project Manager")) { var tickets = from t in aHelper.ListTicketsPM() select t; if (!String.IsNullOrEmpty(myFilter)) { tickets = tickets.Where(t => t.Project.Name.Contains(myFilter)); } if (!String.IsNullOrEmpty(myFilter2)) { tickets = tickets.Where(t => t.TicketType.Name.Contains(myFilter2)); } if (!String.IsNullOrEmpty(myFilter3)) { tickets = tickets.Where(t => t.TicketStatus.Name.Contains(myFilter3)); } if (!String.IsNullOrEmpty(myFilter4)) { tickets = tickets.Where(t => t.TicketPriority.Name.Contains(myFilter4)); } if (!String.IsNullOrEmpty(myFilter5)) { tickets = tickets.Where(t => t.OwnerUser.DispalyName.Contains(myFilter5)); } if (!String.IsNullOrEmpty(myFilter6)) { tickets = tickets.Where(t => t.AssignedToUser.DispalyName.Contains(myFilter6)); } if (!String.IsNullOrEmpty(searchString)) { tickets = tickets.Where(t => t.Title.Contains(searchString)).Union(tickets.Where(t => t.Description.Contains(searchString))) .Union(tickets.Where(t => t.Project.Name.Contains(searchString))).Union(tickets.Where(t => t.TicketType.Name.Contains(searchString))) .Union(tickets.Where(t => t.TicketStatus.Name.Contains(searchString))).Union(tickets.Where(t => t.TicketPriority != null && t.TicketPriority.Name.Contains(searchString))) .Union(tickets.Where(t => t.OwnerUser.DispalyName.Contains(searchString))).Union(tickets.Where(t => t.AssignedToUser != null && t.AssignedToUser.DispalyName.Contains(searchString))); } switch (sortOrder) { case "title": tickets = tickets.OrderBy(t => t.Title); break; case "Pname": tickets = tickets.OrderBy(t => t.Project.Name); break; case "ttypename": tickets = tickets.OrderBy(t => t.TicketType.Name); break; case "owner": tickets = tickets.OrderBy(t => t.OwnerUser.DispalyName); break; case "created": tickets = tickets.OrderBy(t => t.Created); break; case "created_desc": tickets = tickets.OrderByDescending(t => t.Created); break; case "updated": tickets = tickets.OrderBy(t => t.Updated); break; case "updated_desc": tickets = tickets.OrderByDescending(t => t.Updated); break; case "tstatus": tickets = tickets.OrderBy(t => t.TicketStatus.Name); break; case "tpriority": tickets = tickets.OrderBy(t => t.TicketPriority.Name); break; case "assigneduser": tickets = tickets.OrderBy(t => t.AssignedToUser.DispalyName); break; default: tickets = tickets.OrderByDescending(t => t.Created); break; } int pageSize = 10; int pageNumber = (page ?? 1); return(View(tickets.ToPagedList(pageNumber, pageSize))); } else { var tickets = from t in aHelper.ListTicketsForUser(User.Identity.GetUserId()) select t; if (!String.IsNullOrEmpty(searchString)) { tickets = tickets.Where(t => t.Title.Contains(searchString)).Union(tickets.Where(t => t.Description.Contains(searchString))) .Union(tickets.Where(t => t.Project.Name.Contains(searchString))).Union(tickets.Where(t => t.TicketType.Name.Contains(searchString))) .Union(tickets.Where(t => t.TicketStatus.Name.Contains(searchString))).Union(tickets.Where(t => t.OwnerUser.DispalyName.Contains(searchString))); } switch (sortOrder) { case "title": tickets = tickets.OrderBy(t => t.Title); break; case "Pname": tickets = tickets.OrderBy(t => t.Project.Name); break; case "ttypename": tickets = tickets.OrderBy(t => t.TicketType.Name); break; case "owner": tickets = tickets.OrderBy(t => t.OwnerUser.DispalyName); break; case "created": tickets = tickets.OrderBy(t => t.Created); break; case "created_desc": tickets = tickets.OrderByDescending(t => t.Created); break; case "updated": tickets = tickets.OrderBy(t => t.Updated); break; case "updated_desc": tickets = tickets.OrderByDescending(t => t.Updated); break; case "tstatus": tickets = tickets.OrderBy(t => t.TicketStatus.Name); break; default: tickets = tickets.OrderByDescending(t => t.Created); break; } int pageSize = 10; int pageNumber = (page ?? 1); return(View(tickets.ToPagedList(pageNumber, pageSize))); } }