예제 #1
0
        public async Task <TicketField> UpdateAsync(TicketField ticketField)
        {
            using (_loggerScope(_logger, "PutAsync"))
                using (var client = _apiClient.CreateClient(ResourceUri))
                {
                    var request  = new TicketFieldCreateUpdateRequest(ticketField);
                    var response = await client.PutAsJsonAsync(ticketField.Id.ToString(), request).ConfigureAwait(false);

                    if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
                    {
                        _logger.LogInformation("Cannot update ticket field as ticket field {0} cannot be found", ticketField.Id);
                        return(null);
                    }

                    response.EnsureSuccessStatusCode();

                    var result = await response.Content.ReadAsAsync <TicketFieldResponse>();

                    return(result.TicketField);
                }
        }
예제 #2
0
        public async Task <TicketField> CreateAsync(TicketField ticketField)
        {
            using (_loggerScope(_logger, "PostAsync"))
                using (var client = _apiClient.CreateClient())
                {
                    var request  = new TicketFieldCreateUpdateRequest(ticketField);
                    var response = await client.PostAsJsonAsync(ResourceUri, request).ConfigureAwait(false);

                    if (response.StatusCode != System.Net.HttpStatusCode.Created)
                    {
                        throw new HttpRequestException(
                                  $"Status code retrieved was {response.StatusCode} and not a 201 as expected" +
                                  Environment.NewLine +
                                  "See: https://developer.zendesk.com/rest_api/docs/core/ticket_fields#create-ticket-field");
                    }

                    var result = await response.Content.ReadAsAsync <TicketFieldResponse>();

                    return(result.TicketField);
                }
        }