diff --git a/Tests/TicketTests.cs b/Tests/TicketTests.cs index 6b9cfd1d..edfdaab7 100644 --- a/Tests/TicketTests.cs +++ b/Tests/TicketTests.cs @@ -220,6 +220,9 @@ public void CanCreateUpdateAndDeleteTicket() Assert.NotNull(res); Assert.Greater(res.Id, 0); + Assert.AreEqual(res.CreatedAt, res.UpdatedAt); + Assert.LessOrEqual(res.CreatedAt - DateTimeOffset.UtcNow, TimeSpan.FromMinutes (1.0)); + res.Status = TicketStatus.Solved; res.AssigneeId = Settings.UserId; @@ -234,6 +237,7 @@ public void CanCreateUpdateAndDeleteTicket() Assert.NotNull(updateResponse); Assert.AreEqual(updateResponse.Audit.Events.First().Body, body); Assert.Greater(updateResponse.Ticket.CollaboratorIds.Count, 0); + Assert.GreaterOrEqual(updateResponse.Ticket.UpdatedAt, updateResponse.Ticket.CreatedAt); Assert.True(api.Tickets.Delete(res.Id.Value)); } @@ -264,6 +268,28 @@ public void CanCreateTicketWithRequester() Assert.True(api.Tickets.Delete(res.Id.Value)); } + [Test] + public void CanCreateTicketWithDueDate() + { + var dueAt = DateTimeOffset.UtcNow; + + var ticket = new Ticket() + { + Subject = "ticket with due date", + Comment = new Comment() { Body = "test comment" }, + Type = "task", + Priority = TicketPriorities.Normal, + DueAt = DateTimeOffset.UtcNow + }; + + var res = api.Tickets.CreateTicket(ticket).Ticket; + + Assert.NotNull(res); + Assert.AreEqual(dueAt.ToString(), res.DueAt.ToString()); + + Assert.True(api.Tickets.Delete(res.Id.Value)); + } + [Test] public void CanCreateTicketWithTicketFormId() { diff --git a/ZendeskApi_v2/Models/AccountsAndActivities/Activity.cs b/ZendeskApi_v2/Models/AccountsAndActivities/Activity.cs index 09892e6e..bee2e1de 100644 --- a/ZendeskApi_v2/Models/AccountsAndActivities/Activity.cs +++ b/ZendeskApi_v2/Models/AccountsAndActivities/Activity.cs @@ -1,7 +1,9 @@ // JSON C# Class Generator // http://at-my-window.blogspot.com/?page=json-class-generator +using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.AccountsAndActivities @@ -29,9 +31,11 @@ public class Activity public ZendeskApi_v2.Models.Users.User Actor { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Categories/Category.cs b/ZendeskApi_v2/Models/Categories/Category.cs index f5ac37db..6bd62c2d 100644 --- a/ZendeskApi_v2/Models/Categories/Category.cs +++ b/ZendeskApi_v2/Models/Categories/Category.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Categories @@ -24,9 +25,11 @@ public class Category public int Position { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/CustomRoles/CustomRole.cs b/ZendeskApi_v2/Models/CustomRoles/CustomRole.cs index 477b17b8..dfb1b22a 100644 --- a/ZendeskApi_v2/Models/CustomRoles/CustomRole.cs +++ b/ZendeskApi_v2/Models/CustomRoles/CustomRole.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.CustomRoles @@ -21,10 +22,12 @@ public class CustomRole public string Description { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("configuration")] public Configuration Configuration { get; set; } diff --git a/ZendeskApi_v2/Models/Forums/Forum.cs b/ZendeskApi_v2/Models/Forums/Forum.cs index bafe853a..39c82daf 100644 --- a/ZendeskApi_v2/Models/Forums/Forum.cs +++ b/ZendeskApi_v2/Models/Forums/Forum.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Forums @@ -43,9 +44,11 @@ public class Forum public string Access { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Forums/ForumSubscription.cs b/ZendeskApi_v2/Models/Forums/ForumSubscription.cs index 51dfec5f..c44a9ff9 100644 --- a/ZendeskApi_v2/Models/Forums/ForumSubscription.cs +++ b/ZendeskApi_v2/Models/Forums/ForumSubscription.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Forums @@ -22,6 +23,7 @@ public class ForumSubscription public long? UserId { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Groups/Group.cs b/ZendeskApi_v2/Models/Groups/Group.cs index 749847e6..e7e9fd92 100644 --- a/ZendeskApi_v2/Models/Groups/Group.cs +++ b/ZendeskApi_v2/Models/Groups/Group.cs @@ -1,4 +1,6 @@ +using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Groups { @@ -18,9 +20,11 @@ public class Group public bool Deleted { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } -} \ No newline at end of file +} diff --git a/ZendeskApi_v2/Models/Groups/GroupMembership.cs b/ZendeskApi_v2/Models/Groups/GroupMembership.cs index b14904d5..39f4fbc6 100644 --- a/ZendeskApi_v2/Models/Groups/GroupMembership.cs +++ b/ZendeskApi_v2/Models/Groups/GroupMembership.cs @@ -1,4 +1,6 @@ +using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Groups { @@ -21,9 +23,11 @@ public class GroupMembership public bool Default { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } -} \ No newline at end of file +} diff --git a/ZendeskApi_v2/Models/Locales/Locale.cs b/ZendeskApi_v2/Models/Locales/Locale.cs index 17344df0..cfc58f8b 100644 --- a/ZendeskApi_v2/Models/Locales/Locale.cs +++ b/ZendeskApi_v2/Models/Locales/Locale.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Locales @@ -25,9 +26,11 @@ public class Locale public string Name { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Macros/Macro.cs b/ZendeskApi_v2/Models/Macros/Macro.cs index 841c308c..0af9e30a 100644 --- a/ZendeskApi_v2/Models/Macros/Macro.cs +++ b/ZendeskApi_v2/Models/Macros/Macro.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Macros @@ -24,10 +25,12 @@ public class Macro public bool? Active { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("restriction")] public Restriction Restriction { get; set; } diff --git a/ZendeskApi_v2/Models/Organizations/Organization.cs b/ZendeskApi_v2/Models/Organizations/Organization.cs index 9b0e86a7..17f4daf7 100644 --- a/ZendeskApi_v2/Models/Organizations/Organization.cs +++ b/ZendeskApi_v2/Models/Organizations/Organization.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Organizations @@ -25,10 +26,12 @@ public class Organization public string Name { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("domain_names")] public IList DomainNames { get; set; } diff --git a/ZendeskApi_v2/Models/Requests/Request.cs b/ZendeskApi_v2/Models/Requests/Request.cs index 2ec1b58f..26a6c490 100644 --- a/ZendeskApi_v2/Models/Requests/Request.cs +++ b/ZendeskApi_v2/Models/Requests/Request.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using ZendeskApi_v2.Models.Shared; using ZendeskApi_v2.Models.Tickets; @@ -39,10 +40,12 @@ public class Request public IList CustomFields { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } /// /// This is used for updates only diff --git a/ZendeskApi_v2/Models/SatisfactionRatings/SatisfactionRating.cs b/ZendeskApi_v2/Models/SatisfactionRatings/SatisfactionRating.cs index 4a8ca265..5e20749e 100644 --- a/ZendeskApi_v2/Models/SatisfactionRatings/SatisfactionRating.cs +++ b/ZendeskApi_v2/Models/SatisfactionRatings/SatisfactionRating.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Satisfaction @@ -34,10 +35,12 @@ public class SatisfactionRating public string Score { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("comment")] public string Comment { get; set; } diff --git a/ZendeskApi_v2/Models/Search/Result.cs b/ZendeskApi_v2/Models/Search/Result.cs index 209d6dd1..57b53fa4 100644 --- a/ZendeskApi_v2/Models/Search/Result.cs +++ b/ZendeskApi_v2/Models/Search/Result.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using ZendeskApi_v2.Models.Shared; using ZendeskApi_v2.Models.Tickets; @@ -66,10 +67,12 @@ public class Result public int? CommentsCount { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("id")] public int Id { get; set; } diff --git a/ZendeskApi_v2/Models/Shared/Audit.cs b/ZendeskApi_v2/Models/Shared/Audit.cs index 4133cd68..5ff2c106 100644 --- a/ZendeskApi_v2/Models/Shared/Audit.cs +++ b/ZendeskApi_v2/Models/Shared/Audit.cs @@ -1,5 +1,7 @@ +using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Shared { @@ -12,7 +14,8 @@ public class Audit public string TicketId { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("author_id")] public long AuthorId { get; set; } @@ -26,4 +29,4 @@ public class Audit [JsonProperty("events")] public IList Events { get; set; } } -} \ No newline at end of file +} diff --git a/ZendeskApi_v2/Models/SharingAgreements/SharingAgreement.cs b/ZendeskApi_v2/Models/SharingAgreements/SharingAgreement.cs index 85ecfe68..a493f2d8 100644 --- a/ZendeskApi_v2/Models/SharingAgreements/SharingAgreement.cs +++ b/ZendeskApi_v2/Models/SharingAgreements/SharingAgreement.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.SharingAgreements @@ -27,6 +28,7 @@ public class SharingAgreement public string Status { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Tickets/BaseTicket.cs b/ZendeskApi_v2/Models/Tickets/BaseTicket.cs index 8bbaac87..09e2ff25 100644 --- a/ZendeskApi_v2/Models/Tickets/BaseTicket.cs +++ b/ZendeskApi_v2/Models/Tickets/BaseTicket.cs @@ -1,4 +1,6 @@ -using Newtonsoft.Json; +using System; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Tickets { @@ -11,10 +13,12 @@ public class BaseTicket public long? Id { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Tickets/Comment.cs b/ZendeskApi_v2/Models/Tickets/Comment.cs index 8d097e23..b274733c 100644 --- a/ZendeskApi_v2/Models/Tickets/Comment.cs +++ b/ZendeskApi_v2/Models/Tickets/Comment.cs @@ -1,5 +1,7 @@ +using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using ZendeskApi_v2.Models.Shared; namespace ZendeskApi_v2.Models.Tickets @@ -43,7 +45,8 @@ public class Comment public MetaData MetaData { get; private set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } } diff --git a/ZendeskApi_v2/Models/Tickets/FieldHeaders.cs b/ZendeskApi_v2/Models/Tickets/FieldHeaders.cs index 4b1fb370..35288fca 100644 --- a/ZendeskApi_v2/Models/Tickets/FieldHeaders.cs +++ b/ZendeskApi_v2/Models/Tickets/FieldHeaders.cs @@ -1,4 +1,6 @@ +using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Tickets { @@ -42,25 +44,31 @@ public class FieldHeaders public string TicketType { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("assigned_at")] - public string AssignedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? AssignedAt { get; set; } [JsonProperty("organization_name")] public string OrganizationName { get; set; } [JsonProperty("due_date")] - public string DueDate { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? DueDate { get; set; } [JsonProperty("initially_assigned_at")] - public string InitiallyAssignedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? InitiallyAssignedAt { get; set; } [JsonProperty("solved_at")] - public string SolvedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? SolvedAt { get; set; } [JsonProperty("resolution_time")] public string ResolutionTime { get; set; } @@ -131,4 +139,4 @@ public class FieldHeaders [JsonProperty("id")] public string Id { get; set; } } -} \ No newline at end of file +} diff --git a/ZendeskApi_v2/Models/Tickets/Suspended/SuspendedTicket.cs b/ZendeskApi_v2/Models/Tickets/Suspended/SuspendedTicket.cs index d90c4aa9..3599f00f 100644 --- a/ZendeskApi_v2/Models/Tickets/Suspended/SuspendedTicket.cs +++ b/ZendeskApi_v2/Models/Tickets/Suspended/SuspendedTicket.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Tickets.Suspended @@ -34,10 +35,12 @@ public class SuspendedTicket public string MessageId { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("via")] public Via Via { get; set; } diff --git a/ZendeskApi_v2/Models/Tickets/Ticket.cs b/ZendeskApi_v2/Models/Tickets/Ticket.cs index 429ccbca..a990283c 100644 --- a/ZendeskApi_v2/Models/Tickets/Ticket.cs +++ b/ZendeskApi_v2/Models/Tickets/Ticket.cs @@ -1,13 +1,13 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using ZendeskApi_v2.Models.Shared; namespace ZendeskApi_v2.Models.Tickets { public class Ticket : BaseTicket { - - [JsonProperty("external_id")] public object ExternalId { get; set; } @@ -70,7 +70,8 @@ public class Ticket : BaseTicket public bool? HasIncidents { get; set; } [JsonProperty("due_at")] - public string? DueAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? DueAt { get; set; } [JsonProperty("tags")] public IList Tags { get; set; } diff --git a/ZendeskApi_v2/Models/Tickets/TicketExportResult.cs b/ZendeskApi_v2/Models/Tickets/TicketExportResult.cs index 7abbb98a..681002f4 100644 --- a/ZendeskApi_v2/Models/Tickets/TicketExportResult.cs +++ b/ZendeskApi_v2/Models/Tickets/TicketExportResult.cs @@ -1,4 +1,6 @@ +using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Tickets { @@ -51,13 +53,16 @@ public class TicketExportResult public string TicketType { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("assigned_at")] - public string AssignedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? AssignedAt { get; set; } [JsonProperty("organization_name")] public string OrganizationName { get; set; } @@ -66,10 +71,12 @@ public class TicketExportResult public object DueDate { get; set; } [JsonProperty("initially_assigned_at")] - public string InitiallyAssignedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? InitiallyAssignedAt { get; set; } [JsonProperty("solved_at")] - public string SolvedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? SolvedAt { get; set; } [JsonProperty("resolution_time")] public string ResolutionTime { get; set; } @@ -131,4 +138,4 @@ public class TicketExportResult [JsonProperty("url")] public string Url { get; set; } } -} \ No newline at end of file +} diff --git a/ZendeskApi_v2/Models/Tickets/TicketField.cs b/ZendeskApi_v2/Models/Tickets/TicketField.cs index a3f87ee9..eebad542 100644 --- a/ZendeskApi_v2/Models/Tickets/TicketField.cs +++ b/ZendeskApi_v2/Models/Tickets/TicketField.cs @@ -1,5 +1,7 @@ +using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Tickets { @@ -62,10 +64,12 @@ public class TicketField : TicketFieldBase public string Url { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } public class CustomFieldOptions @@ -76,4 +80,4 @@ public class CustomFieldOptions [JsonProperty("value")] public string Value { get; set; } } -} \ No newline at end of file +} diff --git a/ZendeskApi_v2/Models/Tickets/TicketForm.cs b/ZendeskApi_v2/Models/Tickets/TicketForm.cs index 9c619158..761c64e4 100644 --- a/ZendeskApi_v2/Models/Tickets/TicketForm.cs +++ b/ZendeskApi_v2/Models/Tickets/TicketForm.cs @@ -1,5 +1,7 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Tickets { @@ -34,9 +36,11 @@ public class TicketForm public bool Default { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } } -} \ No newline at end of file +} diff --git a/ZendeskApi_v2/Models/Tickets/TicketMetric.cs b/ZendeskApi_v2/Models/Tickets/TicketMetric.cs index aeff151b..0b477f67 100644 --- a/ZendeskApi_v2/Models/Tickets/TicketMetric.cs +++ b/ZendeskApi_v2/Models/Tickets/TicketMetric.cs @@ -1,4 +1,6 @@ -using Newtonsoft.Json; +using System; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Tickets { @@ -20,25 +22,32 @@ public class TicketMetric : BaseTicket public long? Replies { get; set; } [JsonProperty("assignee_updated_at")] - public string AssigneeUpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? AssigneeUpdatedAt { get; set; } [JsonProperty("requester_updated_at")] - public string RequesterUpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? RequesterUpdatedAt { get; set; } [JsonProperty("status_updated_at")] - public string StatusUpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? StatusUpdatedAt { get; set; } [JsonProperty("initially_assigned_at")] - public string InitiallyAssignedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? InitiallyAssignedAt { get; set; } [JsonProperty("assigned_at")] - public string AssignedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? AssignedAt { get; set; } [JsonProperty("solved_at")] - public string SolvedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? SolvedAt { get; set; } [JsonProperty("latest_comment_added_at")] - public string LatestCommentAddedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? LatestCommentAddedAt { get; set; } [JsonProperty("first_resolution_time_in_minutes")] public TimeSpanMetric FirstResolutionTimeInMinutes { get; set; } diff --git a/ZendeskApi_v2/Models/Topics/Topic.cs b/ZendeskApi_v2/Models/Topics/Topic.cs index 330e118c..93573a45 100644 --- a/ZendeskApi_v2/Models/Topics/Topic.cs +++ b/ZendeskApi_v2/Models/Topics/Topic.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using ZendeskApi_v2.Models.Shared; @@ -60,10 +61,12 @@ public class Topic public int CommentsCount { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } /// /// Used for uploading Topics only diff --git a/ZendeskApi_v2/Models/Topics/TopicComment.cs b/ZendeskApi_v2/Models/Topics/TopicComment.cs index f4808f39..d035a9a4 100644 --- a/ZendeskApi_v2/Models/Topics/TopicComment.cs +++ b/ZendeskApi_v2/Models/Topics/TopicComment.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using ZendeskApi_v2.Models.Shared; @@ -32,10 +33,12 @@ public class TopicComment public IList Attachments { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } /// /// Used for uploading attachments only diff --git a/ZendeskApi_v2/Models/Topics/TopicSubscription.cs b/ZendeskApi_v2/Models/Topics/TopicSubscription.cs index 0231c9ae..a85e59b7 100644 --- a/ZendeskApi_v2/Models/Topics/TopicSubscription.cs +++ b/ZendeskApi_v2/Models/Topics/TopicSubscription.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Topics @@ -21,6 +22,7 @@ public class TopicSubscription public long UserId { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Topics/TopicVote.cs b/ZendeskApi_v2/Models/Topics/TopicVote.cs index 977f62e6..6558c984 100644 --- a/ZendeskApi_v2/Models/Topics/TopicVote.cs +++ b/ZendeskApi_v2/Models/Topics/TopicVote.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Topics @@ -21,6 +22,7 @@ public class TopicVote public long TopicId { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Triggers/Trigger.cs b/ZendeskApi_v2/Models/Triggers/Trigger.cs index c2d2bb85..0207c29e 100644 --- a/ZendeskApi_v2/Models/Triggers/Trigger.cs +++ b/ZendeskApi_v2/Models/Triggers/Trigger.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Triggers @@ -25,10 +26,12 @@ public class Trigger public bool Active { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("actions")] public IList Actions { get; set; } diff --git a/ZendeskApi_v2/Models/Users/User.cs b/ZendeskApi_v2/Models/Users/User.cs index a30fba47..1ab5b407 100644 --- a/ZendeskApi_v2/Models/Users/User.cs +++ b/ZendeskApi_v2/Models/Users/User.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Users { @@ -24,10 +25,12 @@ public class User public string Alias { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("active")] public bool? Active { get; set; } @@ -45,7 +48,8 @@ public class User public string TimeZone { get; set; } [JsonProperty("last_login_at")] - public string LastLoginAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? LastLoginAt { get; set; } [JsonProperty("email")] public string Email { get; set; } diff --git a/ZendeskApi_v2/Models/Users/UserIdentity.cs b/ZendeskApi_v2/Models/Users/UserIdentity.cs index 2e7bf80a..9aacfb1f 100644 --- a/ZendeskApi_v2/Models/Users/UserIdentity.cs +++ b/ZendeskApi_v2/Models/Users/UserIdentity.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace ZendeskApi_v2.Models.Users @@ -31,9 +32,11 @@ public class UserIdentity public bool Primary { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } } } diff --git a/ZendeskApi_v2/Models/Views/Executed/LastComment.cs b/ZendeskApi_v2/Models/Views/Executed/LastComment.cs index f953654a..82de761e 100644 --- a/ZendeskApi_v2/Models/Views/Executed/LastComment.cs +++ b/ZendeskApi_v2/Models/Views/Executed/LastComment.cs @@ -1,7 +1,9 @@ // JSON C# Class Generator // http://at-my-window.blogspot.com/?page=json-class-generator +using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Views.Executed { @@ -13,7 +15,8 @@ public class LastComment public string Body { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("author_id")] public long AuthorId { get; set; } diff --git a/ZendeskApi_v2/Models/Views/View.cs b/ZendeskApi_v2/Models/Views/View.cs index 4d784363..a200052e 100644 --- a/ZendeskApi_v2/Models/Views/View.cs +++ b/ZendeskApi_v2/Models/Views/View.cs @@ -1,7 +1,9 @@ // JSON C# Class Generator // http://at-my-window.blogspot.com/?page=json-class-generator +using System; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace ZendeskApi_v2.Models.Views { @@ -22,10 +24,12 @@ public class View public bool Active { get; set; } [JsonProperty("updated_at")] - public string UpdatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? UpdatedAt { get; set; } [JsonProperty("created_at")] - public string CreatedAt { get; set; } + [JsonConverter(typeof(IsoDateTimeConverter))] + public DateTimeOffset? CreatedAt { get; set; } [JsonProperty("restriction")] public object Restriction { get; set; }