public ActionResult UpdateTicket(AdmIssueViewModel model, int id) { string result = _ticketAdapter.UpdateTicket(model, id); if (result == "ok") { TimeLineHelper.TicketOperations(User.Identity.Name, TimeLineHelper.Operations.Edit, id); } else { TimeLineHelper.ErrorOperations(User.Identity.Name, TimeLineHelper.Operations.Edit, result, id); } return(RedirectToAction("UpdateTicket", new { id = id })); }
public void AssignTech(AdmIssueViewModel model, int issueId) { if (model.AssignToId == null) { return; } using (ApplicationDbContext db = new ApplicationDbContext()) { // first see if there is already an assignment with issue and tech, if so don't create another Assignment assignment = db.Assignments.FirstOrDefault(a => a.IssueId == issueId && a.UserId == model.AssignToId); if (assignment == null) // did not find assignment { // create assignment assignment = new Assignment() { IssueId = issueId, UserId = model.AssignToId, }; db.Assignments.Add(assignment); Issue issue = db.Issues.FirstOrDefault(i => i.IssueId == issueId); if (issue != null && issue.IsAssigned == false) { issue.IsAssigned = true; } string tech_name = db.Users.Find(model.AssignToId).FirstName; TimeLineHelper.AssigmentOperations(issue.User.UserName, TimeLineHelper.Operations.New, issue.IssueId, tech_name); string ticketId = issue.IssueId.ToString(); AdmUserViewModel tech = GetUserById(model.AssignToId); string tech_email = tech.Email; // email user and tell them that the issue has been updated EmailManager.SendEmailAdminAssignTicket(ticketId, tech_email, issue.IssueDesc); } db.SaveChanges(); } return; }
public string UpdateTicket(AdmIssueViewModel model, int id) { using (ApplicationDbContext db = new ApplicationDbContext()) { Issue issue = db.Issues.FirstOrDefault(i => i.IssueId == id); issue.DateReported = model.DateReported; issue.DateResolved = model.DateResolved; issue.IssueDesc = model.IssueDesc; issue.IssueTypeId = model.IssueType.IssueTypeId; issue.UserId = model.User.UserId; db.SaveChanges(); // Get issue again, because we just changed it, and model coming in does not contain user.email issue = db.Issues.FirstOrDefault(i => i.IssueId == id); string issueId = issue.IssueId.ToString(); string user_email = issue.User.Email; string userName = issue.User.FirstName + " " + issue.User.LastName; // email user and tell them that the issue has been updated EmailManager.SendReporterEmailAdminUpdateTicket(issueId, userName, user_email, issue.IssueDesc); List <AdmUserSelectionModel> techs = HydrateAssignedTechs(id); foreach (AdmUserSelectionModel tech in techs) { // email all assigned techs and tell them that the issue has been updated EmailManager.SendTechEmailAdminUpdateTicket(issueId, tech.UserName, tech.userEmail, issue.IssueDesc); } try { db.SaveChanges(); return("ok"); } catch (Exception ex) { return("An Error Occured While Updating Ticket : (" + id + ") => " + ex.Message); } } }
public AdmIssueViewModel GetTicketById(int id) { AdmIssueViewModel model = new AdmIssueViewModel(); using (ApplicationDbContext db = new ApplicationDbContext()) { Issue issue = db.Issues.FirstOrDefault(i => i.IssueId == id); model.User = new AdmUserViewModel() { FirstName = issue.User.FirstName, LastName = issue.User.LastName, UserId = issue.UserId }; model.DateReported = issue.DateReported; model.DateResolved = issue.DateResolved; model.IsAssigned = issue.IsAssigned; model.IssueDesc = issue.IssueDesc; model.IssueId = issue.IssueId; model.IssueType = new AdmIssueTypeViewModel() { IssueTypeDesc = issue.IssueType.IssueTypeDesc, IssueTypeId = issue.IssueType.IssueTypeId }; model.Resolution = new AdmResolutionViewModel() { ResolutionId = issue.ResolutionId, Notes = issue.Resolution.Notes, ResolutionDesc = issue.Resolution.ResolutionDesc, //need to find a better way to do this IsResolved = issue.Resolution.IsResolved }; } model.IssueTypes = HydrateIssueTypes(); model.Techs = HydrateUsersSelection("Technician"); model.Users = HydrateUsersSelection("All"); model.AssignedTechs = HydrateAssignedTechs(id); return(model); }
public ActionResult UpdateTicket(int id) { AdmIssueViewModel model = _ticketAdapter.GetTicketById(id); return(View(model)); }
// See if tech already has assignment for the issue, if not create one. // If the issue is set to not assigned, then set it to assigned // Note - Can add multiple techs to same issue public ActionResult AssignTech(AdmIssueViewModel model, int issueId) { _ticketAdapter.AssignTech(model, issueId); return(RedirectToAction("UpdateTicket", new { id = issueId })); }
//GET: Technician/IssueDetails/id public ActionResult IssueDetails(int id) { AdmIssueViewModel issue = _ticketAdapter.GetTicketById(id); return(View(issue)); }