public void Action_ComplexRow() { var initalRow = new TestComplexRow(); initalRow.ID = 777; initalRow.Row1 = new TestRow() { ID = 101, Name = "Test Row 1", Date = DateTime.Now }; initalRow.Row2 = new TestRow() { ID = 102, Name = "Test Row 2", Date = DateTime.Now }; initalRow.ErrorRows = new TestRow[] { new TestRow() { ID = 201, Name = "Err Row 1", Date = DateTime.Now }, new TestRow() { ID = 202, Name = "Err Row 2", Date = DateTime.Now }, new TestRow() { ID = 203, Name = "Err Row 3", Date = DateTime.Now } }; var str = initalRow.ToJSON(JSONWritingOptions.CompactRowsAsMap); Console.WriteLine(str); using (var wc = CreateWebClient()) { wc.Headers[HttpRequestHeader.ContentType] = NFX.Web.ContentType.JSON; var res = wc.UploadString(INTEGRATION_HTTP_ADDR + "ComplexRowSet", str); var map = JSONReader.DeserializeDataObject(res) as JSONDataMap; var gotRow = JSONReader.ToRow <TestComplexRow>(map); Assert.AreEqual(initalRow.ID + 1, gotRow.ID); Assert.AreEqual(initalRow.Row1.ID + 2, gotRow.Row1.ID); Assert.IsTrue(gotRow.ErrorRows[2].Date - initalRow.ErrorRows[2].Date.AddDays(-2) < TimeSpan.FromMilliseconds(1)); // dlat 20140617: date string format preservs 3 signs after decimal second instead of 7 digits preserved by .NET DateTime type } }
public void Action_ComplexRow() { var initalRow = new TestComplexRow(); initalRow.ID = 777; initalRow.Row1 = new TestRow(){ID = 101, Name = "Test Row 1", Date = DateTime.Now}; initalRow.Row2 = new TestRow(){ID = 102, Name = "Test Row 2", Date = DateTime.Now}; initalRow.ErrorRows = new TestRow[] { new TestRow() {ID = 201, Name = "Err Row 1", Date = DateTime.Now}, new TestRow() {ID = 202, Name = "Err Row 2", Date = DateTime.Now}, new TestRow() {ID = 203, Name = "Err Row 3", Date = DateTime.Now} }; var str = initalRow.ToJSON(JSONWritingOptions.CompactRowsAsMap); using (var wc = CreateWebClient()) { wc.Headers[HttpRequestHeader.ContentType] = NFX.Web.ContentType.JSON; var res = wc.UploadString(INTEGRATION_HTTP_ADDR + "ComplexRowSet", str); var map = JSONReader.DeserializeDataObject(res) as JSONDataMap; var gotRow = JSONReader.ToRow<TestComplexRow>(map); Assert.AreEqual(initalRow.ID + 1, gotRow.ID); Assert.AreEqual(initalRow.Row1.ID + 2, gotRow.Row1.ID); Assert.IsTrue(gotRow.ErrorRows[2].Date - initalRow.ErrorRows[2].Date.AddDays(-2) < TimeSpan.FromMilliseconds(1) ); // dlat 20140617: date string format preservs 3 signs after decimal second instead of 7 digits preserved by .NET DateTime type } }