Exemplo n.º 1
0
        public ActionResult Update(string ticketIdLocal, TicketHistoryViewModel ticketHistoryViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(ticketHistoryViewModel));
            }

            ViewBag.status = _viewUtilityServices.GetListOfStatus();
            var ticketId      = Encrypt.Unprotect(ticketIdLocal);
            var currentPeople = (people)Session["User"];

            ticketHistoryViewModel.idPeople = currentPeople.id;

            var result = _ticketCommandsService.UpdateTicket(ticketHistoryViewModel, ticketId);

            if (result == false)
            {
                var encryptedTicketId = Encrypt.Protect(ticketId);
                ViewBag.TicketIdEncrypt = encryptedTicketId;
                ViewBag.Error           = "E R R O R al actualizando el ticket";
                return(View(ticketHistoryViewModel));
            }

            _mailerService.NotifyUpdatedTicket(ticketHistoryViewModel, ticketId);
            TempData["Successful"] = "Ticket editado correctamente!";
            return(RedirectToAction("Index", "Home"));
        }
        public bool UpdateTicket(TicketHistoryViewModel baseTicket, string ticketIdLocal)
        {
            var entityTicketId = _searchQueriesService.SearchTicketId(ticketIdLocal);

            if (!UpdateTicketStatus(baseTicket.idStatus, entityTicketId))
            {
                return(false);
            }

            _database = new dbSIACEntities();
            var updateTicket = new ticketHistory
            {
                date     = DateTime.Now,
                idPeople = baseTicket.idPeople,
                idStatus = baseTicket.idStatus,
                idTicket = entityTicketId,
                note     = baseTicket.note
            };

            try
            {
                using (_database)
                {
                    _database.ticketHistory.Add(updateTicket);
                    _database.SaveChanges();
                }
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }
        // GET: Tickets
        public ActionResult Index()
        {
            TicketHistoryViewModel model = new TicketHistoryViewModel();

            var tickets = db.Tickets.Include(t => t.Developer).Include(t => t.Project).Include(t => t.Submitter);

            return(View(tickets.ToList()));
        }
Exemplo n.º 4
0
        public ActionResult Update()
        {
            var internalId        = (string)TempData["internalId"];
            var ticketId          = Encrypt.Unprotect(internalId);
            var ticketHistoryView = new TicketHistoryViewModel();

            ViewBag.status = _viewUtilityServices.GetListOfStatus();
            var encryptedTicketId = Encrypt.Protect(ticketId);

            ViewBag.TicketIdEncrypt = encryptedTicketId;

            return(View(ticketHistoryView));
        }
Exemplo n.º 5
0
 public ActionResult CreateTicketFollow(TicketHistoryViewModel ticket)
 {
     try
     {
         var ticketHistoryRequest = Mapper.Map <TicketHistoryRequest>(ticket);
         this.TicketService.CreateTicketHistory(ticketHistoryRequest);
         return(Redirect(string.Format("/Backlog/UpdateTicketById/{0}", ticket.TicketId)));
     }
     catch (Exception ex)
     {
         return(View("../Shared/Error"));
     }
 }
Exemplo n.º 6
0
        public void NotifyUpdatedTicket(TicketHistoryViewModel updatedTicket, string ticketIdLocal)
        {
            if (int.TryParse(ticketIdLocal, out var ticketId))
            {
                var emailStrings   = new string[2];
                var peopleData     = new string[2];
                var ticketView     = _ticketQueriesService.GeTicketViewModel(ticketId);
                var originalTicket = _searchQueriesService.SearchTicketByNumber(ticketId);

                if (ticketView.idAssignedTechnician != null)
                {
                    emailStrings[0] = _searchQueriesService.SearchEmailPeople((int)ticketView.idAssignedTechnician);
                    peopleData[0]   = GetNameAndIdString((int)ticketView.idAssignedTechnician,
                                                         originalTicket.assignedTechnician,
                                                         originalTicket.assignedTechnicianLastname);
                }

                emailStrings[1] = _searchQueriesService.SearchEmailPeople(ticketView.idClient);
                peopleData[1]   = GetNameAndIdString(ticketView.idClient, originalTicket.client,
                                                     originalTicket.clientLastname);


                var email = new UpdateTicketEmail
                {
                    to             = emailStrings[1],
                    cc             = emailStrings[0],
                    technicianName = peopleData[0],
                    userName       = peopleData[1],
                    baseComment    = originalTicket.description,
                    updateComment  = updatedTicket.note,
                    idTicket       = originalTicket.idLocal
                };

                email.Send();
            }
        }
Exemplo n.º 7
0
        // GET: Tickets/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            var userId = User.Identity.GetUserId();

            if (!URManager.UserIsInRole(userId, "Administrator"))
            {
                if (!(ticket.Project.InChargeOfId == userId))
                {
                    if (!(ticket.AssignedToId == userId))
                    {
                        if (!(ticket.SubmitterId == userId))
                        {
                            return(RedirectToAction("Login", "Account"));
                        }
                    }
                }
            }

            if (ticket.TicketStatus.Name == "Resolved" && !User.IsInRole("Administrator"))
            {
                return(RedirectToAction("Login", "Account"));
            }

            ViewBag.NumberOfComments = ticket.TicketComments.Count;

            //definitely a better way to do this part. doesn't need to be stored in a database
            RelativeTime relativeTime = new RelativeTime();

            if (ticket.TicketComments != null && ticket.TicketComments.Any())
            {
                foreach (var comment in ticket.TicketComments)
                {
                    comment.TimeSincePosted = relativeTime.TimeAgo(comment.Created);
                    db.Entry(comment).Property("TimeSincePosted").IsModified = true;
                    db.SaveChanges();
                }
            }

            ViewBag.NumberOfAttachments = ticket.TicketAttachments.Count;

            if (ticket.TicketAttachments != null && ticket.TicketAttachments.Any())
            {
                foreach (var attachment in ticket.TicketAttachments)
                {
                    attachment.TimeSincePosted = relativeTime.TimeAgo(attachment.Created);
                    db.Entry(attachment).Property("TimeSincePosted").IsModified = true;
                    db.SaveChanges();
                }
            }

            ViewBag.NumberOfChanges = ticket.TicketHistoryEvents.Count - 4;

            TicketHistoryViewModel vm = new TicketHistoryViewModel();

            vm.Ticket             = ticket;
            vm.CreatedBy          = db.Users.Find(ticket.TicketHistoryEvents.ToList()[0].UserId);
            vm.CreatedId          = ticket.TicketHistoryEvents.ToList()[0].NewValue;
            vm.CreatedDescription = ticket.TicketHistoryEvents.ToList()[1].NewValue;
            vm.CreatedPriority    = ticket.TicketHistoryEvents.ToList()[2].NewValue;
            vm.CreatedStatus      = ticket.TicketHistoryEvents.ToList()[3].NewValue;

            return(View(vm));
        }