/// <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);
        }
Beispiel #2
0
        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);
        }