using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
public DateTime? Signed { get; set; }
public DateTime? Portal { get; set; }
public static void Test()
var settings = new JsonSerializerSettings
DateFormatString = "dddd, MMMM d, yyyy @ h:mm:ss tt",
NullValueHandling = NullValueHandling.Ignore,
ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() },
var inputs = JsonConvert.DeserializeObject<Dictionary<string, Input>>(json, settings);
var outputJson = JsonConvert.SerializeObject(inputs, Formatting.Indented, settings);
Console.WriteLine(inputs.Count);
Assert.IsTrue(inputs.Count > 0);
Console.WriteLine("Re-serialized inputs:");
Console.WriteLine(outputJson);
""signed"": ""Friday, June 14, 2019 @ 10:58:21 PM""
""portal"": ""Wednesday, June 5, 2019 @ 10:30:36 AM""
""signed"": ""Tuesday, June 4, 2019 @ 4:07:17 PM""
public static void Main()
Console.WriteLine("Environment version: " + Environment.Version);
Console.WriteLine("Json.NET version: " + typeof(JsonSerializer).Assembly.FullName);
Console.WriteLine("Failed with unhandled exception: ");