Esempio n. 1
0
        public bool createTicket(Ticket ticket)
        {
            ticket.OwnerUserID = getCurrentUserId();
            db.Tickets.Add(ticket);
            var user = getCurrentUser();

            var userTicketLink = new UserTicketLink();
            userTicketLink.UserID = user.UserID;
            userTicketLink.User = user;
            userTicketLink.TicketID = ticket.TicketID;
            userTicketLink.Ticket = ticket;
            db.UserTicketLinks.Add(userTicketLink);

            var ticketEvent = new TicketEvent();
            ticketEvent.text = "Ticket created";
            db.TicketEvents.Add(ticketEvent);
            db.SaveChanges();
            return true;
        }
Esempio n. 2
0
        public bool assignUserToTicket(int userID, int ticketID)
        {
            var user = getCurrentUser();
            if (user.UserID == userID)
            {
                return false;
            }
            if (user.UserType == UserType.Customer)
            {
                return false;
            }
            var assignedToUser = getUser(userID);
            if (assignedToUser.UserType != UserType.Help)
            {
                return false;
            }
            var ticket = getTicket(ticketID);
            if (!assignedToUser.UserTicketLinks.Select(utl => utl.Ticket).Contains(ticket))
            {
                var userTicketLink = new UserTicketLink();
                userTicketLink.UserID = assignedToUser.UserID;
                userTicketLink.User = assignedToUser;
                userTicketLink.TicketID = ticket.TicketID;
                userTicketLink.Ticket = ticket;
                db.UserTicketLinks.Add(userTicketLink);
                ticket.TicketState = TicketState.Open;

                var ticketEvent = new TicketEvent();
                ticketEvent.NewTicketState = TicketState.Open;
                ticketEvent.text = "Ticket " + ticket.TicketID + " ( " + ticket.TicketTitle + " ) assigned to " + assignedToUser.Email + " by " + user.Email;
                ticketEvent.TicketID = ticket.TicketID;
                ticketEvent.Ticket = ticket;
                db.TicketEvents.Add(ticketEvent);
                db.SaveChanges();
            }
            return true;
        }
Esempio n. 3
0
 public bool changeTicketState(int id, string newState)
 {
     var user = getCurrentUser();
     if (user.UserType == UserType.Customer)
     {
         return false;
     }
     if (user.UserTicketLinks.Where(utl => utl.TicketID == id).Count() != 1 || user.UserType == UserType.Admin)
     {
         return false;
     }
     var ticket = getTicket(id);
     ticket.TicketState = (TicketState)(Enum.Parse(typeof(TicketState), newState));
     db.Entry(ticket).State = System.Data.EntityState.Modified;
     var te = new TicketEvent();
     te.NewTicketState = ticket.TicketState;
     te.text = "Ticket " + ticket.TicketID + " ( " + ticket.TicketTitle + " ) was changed to state " + ticket.TicketState + " by " + user.Email;
     te.TicketID = id;
     te.Ticket = ticket;
     db.TicketEvents.Add(te);
     if (user.UserType != UserType.Admin)
     {
         db.UserTicketLinks.Find(user.UserID, id).LastViewed = DateTime.Now;
         ticket.LastCommentDate = DateTime.Now;
     }
     db.SaveChanges();
     return true;
 }