public IndividualTicketFieldResponse CreateTicketField(TicketField ticketField) { var body = new { ticket_field = new { type = ticketField.Type, title = ticketField.Title } }; var res = GenericPost<IndividualTicketFieldResponse>("ticket_fields.json", body); return res; }
public void CanCreateAndDeleteTaggerTicketField() { var tField = new TicketField() { Type = TicketFieldTypes.Tagger, Title = "My Tagger", Description = "test description", TitleInPortal = "Test Tagger", CustomFieldOptions = new List<CustomFieldOptions>() }; tField.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entry", Value = "test value" }); var res = api.Tickets.CreateTicketField(tField); Assert.NotNull(res.TicketField); Assert.True(api.Tickets.DeleteTicketField(res.TicketField.Id.Value)); }
public void CanCreateUpdateAndDeleteTicketFields() { var tField = new TicketField() { Type = TicketFieldTypes.Text, Title = "MyField", }; var res = api.Tickets.CreateTicketField(tField); Assert.NotNull(res.TicketField); var updatedTF = res.TicketField; updatedTF.Title = "My Custom Field"; var updatedRes = api.Tickets.UpdateTicketField(updatedTF); Assert.AreEqual(updatedRes.TicketField.Title, updatedTF.Title); Assert.True(api.Tickets.DeleteTicketField(updatedTF.Id.Value)); }
public async Task<IndividualTicketFieldResponse> UpdateTicketFieldAsync(TicketField ticketField) { return await GenericPutAsync<IndividualTicketFieldResponse>(string.Format("ticket_fields/{0}.json", ticketField.Id), ticketField); }
public async Task<IndividualTicketFieldResponse> CreateTicketFieldAsync(TicketField ticketField) { var body = new { ticket_field = new { type = ticketField.Type, title = ticketField.Title } }; var res = GenericPostAsync<IndividualTicketFieldResponse>("ticket_fields.json", body); return await res; }
public IndividualTicketFieldResponse UpdateTicketField(TicketField ticketField) { return GenericPut<IndividualTicketFieldResponse>(string.Format("ticket_fields/{0}.json", ticketField.Id), ticketField); }
public void CanCreateUpdateOptionsAndDeleteTaggerTicketField() { var tField = new TicketField() { Type = TicketFieldTypes.Tagger, Title = "My Tagger 2", Description = "test description", TitleInPortal = "Test Tagger", CustomFieldOptions = new List<CustomFieldOptions>() }; tField.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryA", Value = "test_valueA" }); tField.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryB", Value = "test_valueB" }); var res = api.Tickets.CreateTicketField(tField); Assert.NotNull(res.TicketField); Assert.NotNull(res.TicketField.Id); Assert.AreEqual(res.TicketField.CustomFieldOptions.Count, 2); Assert.NotNull(res.TicketField.CustomFieldOptions[0].Id); Assert.NotNull(res.TicketField.CustomFieldOptions[1].Id); long id = res.TicketField.Id.Value; long idCfoA = res.TicketField.CustomFieldOptions[0].Id.Value; long idCfoB = res.TicketField.CustomFieldOptions[1].Id.Value; /* https://developer.zendesk.com/rest_api/docs/core/ticket_fields#updating-a-dropdown-tagger-field * All options must be passed on update. Options that are not passed will be removed; as a result, these values will be removed from any tickets or macros. * To create a new option, pass a null id along with name and value. * To update an existing option, pass its id along with name and value. * To remove an option, omit it from the list of options upon update. */ var tFieldU = new TicketField() { Id = id, CustomFieldOptions = new List<CustomFieldOptions>() }; //update CustomFieldOption A tFieldU.CustomFieldOptions.Add(new CustomFieldOptions() { Id = idCfoA, Name = "test entryA newTitle", Value = "test_valueA_newTag" }); //delete CustomFieldOption B //add CustomFieldOption C tFieldU.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryC", Value = "test_valueC" }); var resU = api.Tickets.UpdateTicketField(tFieldU); Assert.AreEqual(resU.TicketField.CustomFieldOptions.Count, 2); Assert.AreEqual(resU.TicketField.CustomFieldOptions[0].Id, idCfoA); Assert.AreNotEqual(resU.TicketField.CustomFieldOptions[1].Id, idCfoB); Assert.True(api.Tickets.DeleteTicketField(id)); }
public IndividualTicketFieldResponse UpdateTicketField(TicketField ticketField) { var body = new { ticket_field = ticketField }; return GenericPut<IndividualTicketFieldResponse>(string.Format("ticket_fields/{0}.json", ticketField.Id), body); }
public IndividualTicketFieldResponse CreateTicketField(TicketField ticketField) { if (ticketField.CustomFieldOptions != null) { foreach (var custom in ticketField.CustomFieldOptions) { custom.Name = custom.Name.Replace(' ', '_'); custom.Value = custom.Value.Replace(' ', '_'); } } var body = new { ticket_field = ticketField }; var res = GenericPost<IndividualTicketFieldResponse>("ticket_fields.json", body); return res; }
public void CanCreateUpdateAndDeleteTicketFields() { // Something seems wrong with the api itself. Assert.Inconclusive(); var tField = new TicketField() { Type = TicketFieldTypes.Text, Title = "MyField", }; var res = api.Tickets.CreateTicketField(tField); Assert.NotNull(res.TicketField); var updatedTF = res.TicketField; updatedTF.Title = "My Custom Field"; var updatedRes = api.Tickets.UpdateTicketField(updatedTF); Assert.AreEqual(updatedRes.TicketField.Title, updatedTF.Title); Assert.True(api.Tickets.DeleteTicketField(updatedTF.Id.Value)); }
public void CanCreateUpdateOptionsAndDeleteTaggerTicketField() { // https://support.zendesk.com/hc/en-us/articles/204579973--BREAKING-Update-ticket-field-dropdown-fields-by-value-instead-of-id- string option1 = "test_value_a"; string option1_Update = "test_value_a_newtag"; string option2 = "test_value_b"; string option3 = "test_value_c"; var tField = new TicketField() { Type = TicketFieldTypes.Tagger, Title = "My Tagger 2", Description = "test description", TitleInPortal = "Test Tagger", CustomFieldOptions = new List<CustomFieldOptions>() }; tField.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryA", Value = option1 }); tField.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryB", Value = option2 }); var res = api.Tickets.CreateTicketField(tField); Assert.That(res.TicketField, Is.Not.Null); Assert.That(res.TicketField.Id, Is.Not.Null); Assert.That(res.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); Assert.That(res.TicketField.CustomFieldOptions[0].Value, Is.EqualTo(option1)); Assert.That(res.TicketField.CustomFieldOptions[1].Value, Is.EqualTo(option2)); long id = res.TicketField.Id.Value; var tFieldU = new TicketField() { Id = id, CustomFieldOptions = new List<CustomFieldOptions>() }; //update CustomFieldOption A tFieldU.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryA newTitle", Value = option1_Update }); //delete CustomFieldOption B //add CustomFieldOption C tFieldU.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryC", Value = option3 }); var resU = api.Tickets.UpdateTicketField(tFieldU); Assert.That(resU.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); Assert.That(resU.TicketField.CustomFieldOptions[0].Value, Is.EqualTo(option1_Update)); Assert.That(resU.TicketField.CustomFieldOptions[1].Value, Is.Not.EqualTo(option2)); Assert.True(api.Tickets.DeleteTicketField(id)); }
public async Task CanCreateUpdateOptionsAndDeleteTaggerTicketFieldAsync() { string option1 = "test_value_a"; string option1_Update = "test_value_a_newtag"; string option2 = "test_value_b"; string option3 = "test_value_c"; var tField = new TicketField() { Type = TicketFieldTypes.Tagger, Title = "My Tagger 2", Description = "test description", TitleInPortal = "Test Tagger", CustomFieldOptions = new List<CustomFieldOptions>() }; tField.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryA", Value = option1 }); tField.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryB", Value = option2 }); var res = await api.Tickets.CreateTicketFieldAsync(tField); Assert.That(res.TicketField, Is.Not.Null); Assert.That(res.TicketField.Id, Is.Not.Null); Assert.That(res.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); Assert.That(res.TicketField.CustomFieldOptions[0].Value, Is.EqualTo(option1)); Assert.That(res.TicketField.CustomFieldOptions[1].Value, Is.EqualTo(option2)); long id = res.TicketField.Id.Value; var tFieldU = new TicketField() { Id = id, CustomFieldOptions = new List<CustomFieldOptions>() }; //update CustomFieldOption A tFieldU.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryA newTitle", Value = option1_Update }); //delete CustomFieldOption B //add CustomFieldOption C tFieldU.CustomFieldOptions.Add(new CustomFieldOptions() { Name = "test entryC", Value = option3 }); var resU = await api.Tickets.UpdateTicketFieldAsync(tFieldU); Assert.That(resU.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); Assert.That(resU.TicketField.CustomFieldOptions[0].Value, Is.EqualTo(option1_Update)); Assert.That(resU.TicketField.CustomFieldOptions[1].Value, Is.Not.EqualTo(option2)); Assert.True(await api.Tickets.DeleteTicketFieldAsync(id)); }
public async Task TicketField() { var tField = new TicketField { Type = TicketFieldTypes.Tagger, Title = "My Tagger 2", Description = "test description", TitleInPortal = "Test Tagger", CustomFieldOptions = new List<CustomFieldOptions> { new CustomFieldOptions { Name = "test entryA", Value = "Test2" }, new CustomFieldOptions { Name = "test entryB", Value = "test3" } } }; var res = api.Tickets.CreateTicketField(tField); Assert.That(res.TicketField, Is.Not.Null); Assert.That(res.TicketField.Id, Is.Not.Null); Assert.That(res.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); }