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)); }
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)); }