/// <summary> /// Add a new time tracking note to a ticket /// </summary> public TicketTimeTrack AddTicketTimeTrackingNote(TicketTimeTrackRequest request) { request.EnsureValidData(RequestTypes.Create); string apiMethod = "/Tickets/TicketTimeTrack"; RequestBodyBuilder parameters = new RequestBodyBuilder(); parameters.AppendRequestData("ticketid", request.TicketId); parameters.AppendRequestData("contents", request.Contents); parameters.AppendRequestData("staffid", request.StaffId); parameters.AppendRequestData("worktimeline", request.WorkTimeline); parameters.AppendRequestData("billtimeline", request.BillTimeline); parameters.AppendRequestData("timespent", request.TimeSpent); parameters.AppendRequestData("timebillable", request.TimeBillable); if (request.WorkerStaffId != null) { parameters.AppendRequestData("workerstaffid", request.WorkerStaffId); } if (request.NoteColor != null) { parameters.AppendRequestData("notecolor", EnumUtility.ToApiString(request.NoteColor)); } TicketTimeTrackCollection ticketTimeTracks = Connector.ExecutePost <TicketTimeTrackCollection>(apiMethod, parameters.ToString()); if (ticketTimeTracks != null && ticketTimeTracks.Count > 0) { return(ticketTimeTracks[0]); } return(null); }
public void GetTicketTimeTrack() { TicketCollection tickets = TestSetup.KayakoApiService.Tickets.GetTickets(new int[] { 1, 2 }); Assert.IsNotNull(tickets, "No tickets were returned"); Assert.IsNotEmpty(tickets, "No tickets were returned"); TicketTimeTrackCollection ticketTimeTracks = null; foreach (Ticket t in tickets) { ticketTimeTracks = TestSetup.KayakoApiService.Tickets.GetTicketTimeTracks(t.Id); if (ticketTimeTracks.Count > 0) { break; } } Assert.IsNotNull(ticketTimeTracks, "No ticket time tracks were returned"); Assert.IsNotEmpty(ticketTimeTracks, "No ticket time tracks were returned"); TicketTimeTrack randomTicketTimeTrackToGet = ticketTimeTracks[new Random().Next(ticketTimeTracks.Count)]; Trace.WriteLine("GetTicketType using ticket time tracks id: " + randomTicketTimeTrackToGet.Id); TicketTimeTrack ticketTimeTrack = TestSetup.KayakoApiService.Tickets.GetTicketTimeTrack(randomTicketTimeTrackToGet.TicketId, randomTicketTimeTrackToGet.Id); CompareTicketTimeTracks(ticketTimeTrack, randomTicketTimeTrackToGet); }
/// <summary> /// Retrieve a list of a ticket's time track notes. /// </summary> public TicketTimeTrackCollection GetTicketTimeTracks(int ticketId) { string apiMethod = String.Format("/Tickets/TicketTimeTrack/ListAll/{0}", ticketId); TicketTimeTrackCollection ticketTimeTracks = Connector.ExecuteGet <TicketTimeTrackCollection>(apiMethod); return(ticketTimeTracks); }
/// <summary> /// Retrieve a ticket's time track note /// </summary> /// <param name="ticketId">The unique numeric identifier of the ticket</param> /// <param name="timeTrackNoteId">The unique numeric identifier of the ticket time tracking note</param> public TicketTimeTrack GetTicketTimeTrack(int ticketId, int timeTrackNoteId) { string apiMethod = String.Format("/Tickets/TicketTimeTrack/{0}/{1}", ticketId, timeTrackNoteId); TicketTimeTrackCollection ticketTimeTracks = Connector.ExecuteGet <TicketTimeTrackCollection>(apiMethod); if (ticketTimeTracks != null && ticketTimeTracks.Count > 0) { return(ticketTimeTracks[0]); } return(null); }
public void GetTicketTimeTracks() { TicketCollection tickets = TestSetup.KayakoApiService.Tickets.GetTickets(new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }); TicketTimeTrackCollection ticketTimeTracks = null; foreach (Ticket t in tickets) { ticketTimeTracks = TestSetup.KayakoApiService.Tickets.GetTicketTimeTracks(t.Id); if (ticketTimeTracks.Count > 0) { break; } } Assert.IsNotNull(tickets, "No ticket time tracks were returned"); Assert.IsNotEmpty(tickets, "No ticket time tracks returned"); }