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 }));
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
        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));
        }