public async Task <IResponseContent> CloseTicket(string tenantUid, string token, string origin, CloseTicketModel ticket)
        {
            var payload = new JsonRpcFormat <JsonRpcFormatParams <CloseTicketModel> >()
            {
                Method = "CloseTicket",
                Params = new JsonRpcFormatParams <CloseTicketModel>()
                {
                    Model = ticket
                }
            };

            var response = await SubmitPostAsync(URL_API_TICKET, token, origin, payload, tenantUid);

            return(await AssertResponseContent <TicketResponseContent>(response));
        }
        public async Task <IResponseContent> GetTicket(string tenantUid, string token, string origin, int ticketId)
        {
            var payload = new JsonRpcFormat <JsonRpcFormatParamsForGetDetails>()
            {
                Method = "GetDetails",
                Params = new JsonRpcFormatParamsForGetDetails
                {
                    TicketId = ticketId
                }
            };

            var response = await SubmitPostAsync(URL_API_TICKET, token, origin, payload, tenantUid);

            return(await AssertResponseContent <TicketResponseContent>(response));
        }
        public async Task <IResponseContent> GetTickets(string tenantUid, string token, string origin)
        {
            var payload = new JsonRpcFormat <JsonRpcFormatParams <SearchTicketsModel> >()
            {
                Method = "Search",
                Params = new JsonRpcFormatParams <SearchTicketsModel>()
                {
                    Model = new SearchTicketsModel()
                    {
                        Term     = "",
                        Statuses = new string[] { },
                        Expanded = true,
                        TicketId = 0
                    }
                }
            };

            var response = await SubmitPostAsync(URL_API_TICKET, token, origin, payload, tenantUid);

            return(await AssertResponseContent <TicketSearchResponseContent>(response));
        }
        public async Task <IResponseContent> CreateMessage(string tenantUid, string token, string origin, int ticketId, string email, string messageText, string attachment)
        {
            var payload = new JsonRpcFormat <JsonRpcFormatParams <CreateMessageModel> >()
            {
                Method = "CreateTicketResponseMessageForCustomer",
                Params = new JsonRpcFormatParams <CreateMessageModel>()
                {
                    Model = new CreateMessageModel
                    {
                        TicketId           = ticketId,
                        MessageText        = messageText,
                        EmailAddress       = email,
                        TicketResponseType = "Response",
                        Attachment         = attachment
                    }
                }
            };

            var response = await SubmitPostAsync(URL_API_TICKET, token, origin, payload, tenantUid);

            return(await AssertResponseContent <TicketMessageResponseContent>(response));
        }
Exemplo n.º 5
0
        protected async Task <IRestResponse> SubmitPostAsync <T>(string url, string token, string origin, JsonRpcFormat <T> payload, string tenantUid = "")
        {
            var client = new RestClientExtended(url)
            {
                Timeout = TIMEOUT
            };
            var request = new RestRequest(Method.POST);
            var param   = JsonConvert.SerializeObject(payload);

            request.AddHeader("Content-Type", "application/json");
            request.AddHeader("Origin", origin);
            request.AddHeader("X-Forwarded-For", GetIpAddress());

            if (!string.IsNullOrEmpty(tenantUid))
            {
                request.AddHeader("Account-context", tenantUid);
            }

            if (!string.IsNullOrEmpty(token))
            {
                request.AddHeader("Authorization", $"Bearer {token}");
            }

            request.AddParameter("body", param, ParameterType.RequestBody);

            return(await client.ExecuteTaskAsync(request));
        }