public void CreateDeleteTicketAttachment() { var depts = TestSetup.KayakoApiService.Departments.GetDepartments(); var staff = TestSetup.KayakoApiService.Staff.GetStaffUsers(); var randomStaffUser = staff[new Random().Next(staff.Count)]; var tickets = TestSetup.KayakoApiService.Tickets.GetTickets(depts.Select(d => d.Id).ToArray()); var randomTicket = tickets[new Random().Next(tickets.Count)]; var ticketPosts = TestSetup.KayakoApiService.Tickets.GetTicketPosts(randomTicket.Id); var randomPost = ticketPosts[new Random().Next(ticketPosts.Count)]; var contents = Convert.ToBase64String(Encoding.UTF8.GetBytes("This is the file contents")); var request = new TicketAttachmentRequest { TicketId = randomTicket.Id, TicketPostId = randomPost.Id, FileName = "TheFilename.txt", Contents = contents }; var createdAttachment = TestSetup.KayakoApiService.Tickets.AddTicketAttachment(request); Assert.AreEqual(createdAttachment.TicketId, randomTicket.Id); Assert.AreEqual(createdAttachment.TicketPostId, randomPost.Id); Assert.AreEqual(createdAttachment.FileName, "TheFilename.txt"); //Assert.AreEqual(createdAttachment.Contents, contents); var success = TestSetup.KayakoApiService.Tickets.DeleteTicketAttachment(randomTicket.Id, createdAttachment.Id); Assert.IsTrue(success); }
/// <summary> /// Add an attachment to a ticket post. /// </summary> /// <param name="ticketId">The unique numeric identifier of the ticket</param> /// <param name="ticketPostId">The unique numeric identifier of the ticket post</param> /// <param name="fileName">The file name for the attachment </param> /// <param name="contents">The BASE64 encoded attachment contents</param> public TicketAttachment AddTicketAttachment(TicketAttachmentRequest request) { string apiMethod = "/Tickets/TicketAttachment"; request.EnsureValidData(RequestTypes.Create); RequestBodyBuilder parameters = new RequestBodyBuilder(); parameters.AppendRequestData("ticketid", request.TicketId); parameters.AppendRequestData("ticketpostid", request.TicketPostId); parameters.AppendRequestData("filename", request.FileName); parameters.AppendRequestData("contents", request.Contents); TicketAttachmentCollection attachments = Connector.ExecutePost <TicketAttachmentCollection>(apiMethod, parameters.ToString()); if (attachments != null && attachments.Count > 0) { return(attachments[0]); } return(null); }