Пример #1
0
        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);
        }