// GET: Tickets/Edit/5 public ActionResult Edit(int? id) { UserRoleHelper helper = new UserRoleHelper(); if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return HttpNotFound(); } var query = db.ProjectUsers.Where(x => x.Project.Project == ticket.Project.Project).ToList(); bool found = false; foreach(var item in query) { var user = db.Users.Where(x => x.Id == item.ProjectUserId).Single(); if (helper.IsUserInRole(user.Id, "Developer")) { userassign.Add(user); found = true; } } if (found) { if(!string.IsNullOrWhiteSpace(ticket.AssignedId)) { ticketd.ticketassign = new SelectList(userassign, "UserName", "UserName", ticket.Assigned.UserName); } else { ticketd.ticketassign = new SelectList(userassign, "UserName", "UserName"); } } ViewBag.TicketPriorityId = new SelectList(db.Priorities, "Id", "Priority", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.Status, "Id", "Status", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.Types, "Id", "Type", ticket.TicketTypeId); ticketd.ticketdetails = ticket; return View(ticketd); }
public ActionResult Create([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerId,AssignedId")] Ticket ticket, string Title, string Status, string Type, string Priority, string Project) { if (ModelState.IsValid) { var queryp = db.Priorities.AsQueryable(); var querys = db.Status.AsQueryable(); var querypr = db.Projects.AsQueryable(); var queryty = db.Types.AsQueryable(); if(!string.IsNullOrWhiteSpace(Priority)) { var queryt = queryp.Where(x => x.Priority == Priority).Select(y => y.Id).Single(); ticket.TicketPriorityId = queryt; } if(!string.IsNullOrWhiteSpace(Status)) { var queryt = querys.Where(x => x.Status == Status).Select(y => y.Id).Single(); ticket.TicketStatusId = queryt; } if(!string.IsNullOrWhiteSpace(Project)) { var queryt = querypr.Where(x => x.Project == Project).Select(y => y.Id).Single(); ticket.ProjectId = queryt; } if(!string.IsNullOrWhiteSpace(Type)) { var queryt = queryty.Where(x => x.Type == Type).Select(y => y.Id).Single(); ticket.TicketTypeId = queryt; } ticket.Title = Title; ticket.Created = System.DateTimeOffset.Now; ticket.OwnerId = User.Identity.GetUserId(); TicketNotify note = new TicketNotify(); note.TicketId = ticket.Id; note.NotifyUserId = ticket.OwnerId; db.Notifications.Add(note); UserRoleHelper helper = new UserRoleHelper(); var manager = db.ProjectUsers.Where(x => x.ProjectId == ticket.ProjectId).ToList(); foreach(var item in manager) { if(helper.IsUserInRole(item.ProjectUserId, "ProjectManager")) { TicketNotify note2 = new TicketNotify(); note2.TicketId = ticket.Id; note2.NotifyUserId = item.ProjectUserId; db.Notifications.Add(note2); } } var emails = db.Notifications.Where(x => x.TicketId == ticket.Id).Select(y => y.NotifyUser.Email).ToList(); var username = ConfigurationManager.AppSettings["SendGridUserName"]; var password = ConfigurationManager.AppSettings["SendGridPassword"]; var from = ConfigurationManager.AppSettings["ContactEmail"]; foreach (var email in emails) { SendGridMessage myMessage = new SendGridMessage(); myMessage.AddTo(email); myMessage.From = new MailAddress(from); myMessage.Subject = "Notification for Ticket #" + ticket.Id; myMessage.Html = "Ticket #" + ticket.Id + " has been created"; var credentials = new NetworkCredential(username, password); var transportWeb = new Web(credentials); transportWeb.DeliverAsync(myMessage); } db.Tickets.Add(ticket); db.SaveChanges(); return RedirectToAction("Index"); } return View(ticket); }
public ActionResult UserRolePageSub(string id, string Username, string[] Roles) { UserRoleHelper helper = new UserRoleHelper(); IList<string> temp = helper.ListUserRoles(id); var remove = true; IList<string> response = new List<string>(); foreach(var item in Roles) { if(!helper.IsUserInRole(id, item)) { helper.AddUserToRole(id, item); response.Add("Added Role " + item + " to User " + Username); } } foreach(var tempitem in temp) { remove = true; foreach(var item in Roles) { if(tempitem == item) { remove = false; } } if(remove) { helper.RemoveUserFromRole(id, tempitem); response.Add("Removed Role " + tempitem + " from User " + Username); } } assign.User = db.Users.Find(id); var selected = helper.ListUserRoles(id); assign.RoleInput = new MultiSelectList(db.Roles, "Name", "Name", selected); assign.response = response; return View(assign); }