У меня есть эта модель, которую я пытаюсь заполнить данными из DataTable, чтобы я мог сериализовать модель до JSON. Однако я не могу найти правильный способ заполнения позиций строки заказа в классе OrderDetails, который указан в OrderDetailsList.
Пока что это то, что у меня есть.
Любая помощь приветствуется.
Спасибо!
Код
List<Order> orders = new List<Order>();
orders = (from DataRow order in DTOrders.Rows
select new Order()
{
ClientPO = "123456",
MerchantOrderID = "123456",
OrderDetailsList = (from DataRow orderDetail in DTOrderItems.AsEnumerable()
where orderDetail["Order Number"].ToString() == order["Order Number"].ToString()
select new OrderItem()
{
//ClientJobRefDetail etc...
}).ToList()
}).ToList();
Модель
public partial class OrderModel
{
[JsonProperty("Order")]
public Order Order { get; set; }
}
public partial class Order
{
[JsonProperty("ClientPO")]
[JsonConverter(typeof(ParseStringConverter))]
public long ClientPo { get; set; }
[JsonProperty("MerchantOrderID")]
[JsonConverter(typeof(ParseStringConverter))]
public long MerchantOrderId { get; set; }
[JsonProperty("OrderDetailsList")]
public OrderDetailsList OrderDetailsList { get; set; }
}
public partial class OrderDetailsList
{
[JsonProperty("OrderDetails")]
public List<OrderDetail> OrderDetails { get; set; }
}
public partial class OrderDetail
{
[JsonProperty("ClientJobRefDetail")]
public string ClientJobRefDetail { get; set; }
[JsonProperty("Product")]
[JsonConverter(typeof(ParseStringConverter))]
public long Product { get; set; }
[JsonProperty("Qty")]
[JsonConverter(typeof(ParseStringConverter))]
public long Qty { get; set; }
[JsonProperty("ShipMethod")]
[JsonConverter(typeof(ParseStringConverter))]
public long ShipMethod { get; set; }
[JsonProperty("ShipTo")]
public string ShipTo { get; set; }
[JsonProperty("ShipToPerson")]
public string ShipToPerson { get; set; }
[JsonProperty("ShipToAddress1")]
public string ShipToAddress1 { get; set; }
[JsonProperty("ShipToCity")]
public string ShipToCity { get; set; }
[JsonProperty("ShipToState")]
public string ShipToState { get; set; }
[JsonProperty("ShipToZip")]
[JsonConverter(typeof(ParseStringConverter))]
public long ShipToZip { get; set; }
[JsonProperty("ShipToPhone")]
public string ShipToPhone { get; set; }
[JsonProperty("ShipToEmail")]
public string ShipToEmail { get; set; }
[JsonProperty("ExternalArtURL")]
public Uri ExternalArtUrl { get; set; }
}
Желаемый выход после сериализации класса в JSON
{
"Order": {
"ClientPO": "999999",
"MerchantOrderID": "123456",
"OrderDetailsList": {
"OrderDetails": [
{
"ClientJobRefDetail": "LINE123456",
"Product": "369",
"Qty": "1",
"ShipMethod": "60",
"ShipTo": "John Doe",
"ShipToPerson": "John Doe",
"ShipToAddress1": "120 9th Ave",
"ShipToCity": "Longmont",
"ShipToState": "CO",
"ShipToZip": "80501",
"ShipToPhone": "5055555555",
"ShipToEmail": "jdoe@example.com",
"ExternalArtURL": "http://example.com/print_ready_image.jpg"
},
{
"ClientJobRefDetail": "LINE78910",
"Product": "521",
"Qty": "2",
"ShipMethod": "60",
"ShipTo": "John Doe",
"ShipToPerson": "John Doe",
"ShipToAddress1": "120 9th Ave",
"ShipToCity": "Longmont",
"ShipToState": "CO",
"ShipToZip": "80501",
"ShipToPhone": "5055555555",
"ShipToEmail": "jdoe@example.com",
"ExternalArtURL": "http://example.com/print_ready_image.jpg"
}
]
}
}
}