Preciso passar um arquivo JSON para o fornecedor e o fornecedor devolve o token quando passo o arquivo JSON. Tenho a seguinte classe para conseguir isso:
public class PayParam
{
public LineItemParam[] LineItems { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
public string CustomerId { get; set; }
public string CompanyName { get; set; }
}
public class LineItemParam
{
public string Sku { get; set; }
public string Description { get; set; }
public decimal UnitPrice { get; set; }
public int Quantity { get; set; }
}
Estou construindo um JSON passando valores para a classe assim:
var parameters = new PayParam();
MailingInfo IdData = scData.FindData();
string[] desc = {"Test1", "Test2", "Test3};
parameters = new PayParam
{
Phone = IdData.PhoneNumber,
Email = IdData.Email.ToUpper(),
CustomerId = "1234",
CompanyName = "TEST NAME",
},
LineItems = new LineItemParam[]
{
new LineItemParam
{
Sku = GetSKU(),
Description = "Test Desc",
UnitPrice = 12.00,
Quantity = 1
}
}
O problema é que preciso passar vários lineItem para cada descrição, então preciso fazer algo assim:
parameters = new PayParam
{
Phone = IdData.PhoneNumber,
Email = IdData.Email.ToUpper(),
CustomerId = "1234",
CompanyName = "TEST NAME",
},
foreach(var de in desc)
{
LineItems = new LineItemParam[]
{
new LineItemParam
{
Sku = GetSKU(),
Description = de,
UnitPrice = 12.00,
Quantity = 1
}
}
}
O código acima não está funcionando, está gerando erro de sintaxe. Ele só funciona se eu colocar um item de linha separado como este:
parameters = new PayParam
{
Phone = IdData.PhoneNumber,
Email = IdData.Email.ToUpper(),
CustomerId = "1234",
CompanyName = "TEST NAME",
},
LineItems = new LineItemParam[]
{
new LineItemParam
{
Sku = GetSKU(),
Description = "Test1",
UnitPrice = 12.00,
Quantity = 1
},
new LineItemParam
{
Sku = GetSKU(),
Description = "Test2",
UnitPrice = 12.00,
Quantity = 1
},
}
Quero passar esses lineItems em um loop e não escrevê-los individualmente.
qualquer ajuda será apreciada.
Basta usar
Select
o método LINQ para transformar uma coleção de descrições em uma matriz deLineItemParam
s, como abaixo: