/// <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 CreateUpdateDeleteTimeTracks() { TicketTimeTrack dummyData = TestData; TicketTimeTrackRequest request = TicketTimeTrackRequest.FromResponseData(dummyData); TicketTimeTrack createdTicketTimeTrack = TestSetup.KayakoApiService.Tickets.AddTicketTimeTrackingNote(request); Assert.IsNotNull(createdTicketTimeTrack); dummyData.Id = createdTicketTimeTrack.Id; dummyData.CreatorStaffName = createdTicketTimeTrack.CreatorStaffName; dummyData.WorkerStaffName = createdTicketTimeTrack.WorkerStaffName; CompareTicketTimeTracks(dummyData, createdTicketTimeTrack); bool success = TestSetup.KayakoApiService.Tickets.DeleteTicketTimeTrackingNote(createdTicketTimeTrack.TicketId, createdTicketTimeTrack.Id); Assert.IsTrue(success); }