I have a customer registration system and am trying to add products to registered customers. For the list of the cadastre I have the following:
public class Cliente
{
public string Nome { get; set; }
public string CPF { get; set; }
public List<ProdutoComprado> Comprou { get; set; }
}
public class ProdutoComprado
{
public string NomeProduto { get; set; }
public string ValorProduto { get; set; }
}
public static List<Cliente> Clientes = new List<Cliente>();
public static List<ProdutoComprado> ProdutosComprados = new List<ProdutoComprado>();
To register the client, I use the following code:
private void btnCadastrarCliente_Click(object sender, EventArgs e)
{
Cliente cliente = new Cliente();
cliente.Nome = caixaClienteNome.Text;
cliente.CPF = caixaClienteCPF.Text;
listaClientes.Items.Add(cliente.Nome);
Clientes.Add(cliente);
}
To register a product for the customer I use:
private void btnCadastrarProduto_Click(object sender, EventArgs e)
{
Cliente procli = Clientes[listaClientes.SelectedIndex];
procli.Comprou = new List<ProdutoComprado>
{
new ProdutoComprado
{
NomeProduto = caixaProdutoComprado.Text,
ValorProduto = caixaValor.Text
}
};
foreach (var prod in procli.Comprou)
{
ProdutosComprados.Add(prod);
listaProdutosComprados.Items.Add(prod.NomeProduto);
}
}
Note that the code uses the selected client in the clients listbox as the array so that the product is added to it. I also use JSON.net to save the data, and I have output the following:
[
{
"Nome": "João",
"CPF": "00000000000",
"Comprou": [
{
"NomeProduto": "Carro 4x4",
"ValorProduto": "R$40000"
}
]
}
]
The problem is that this code only adds 1 product. If I select the client and register another product for it, the product instead of being added simply overwrites the previous one. Instead of saving that way, for example:
[
{
"Nome": "João",
"CPF": "00000000000",
"Comprou": [
{
"NomeProduto": "Carro 4x4",
"ValorProduto": "R$40000",
"NomeProduto": "Moto Honda",
"ValorProduto": "R$20000"
}
]
}
]
.. it saves so overwriting the above:
[
{
"Nome": "João",
"CPF": "00000000000",
"Comprou": [
{
"NomeProduto": "Moto Honda",
"ValorProduto": "R$20000"
}
]
}
]
How to add one product followed by the other?