doubt conditions from Linq to Sql [closed]

3

I have a GridView with certain products and a Quantity DropDown for each. In an event onClick , the products with quantity > 0.

The problem is when I have a table "order details", and I invoke it with Linq to SQL. My goal was to compare if she has the item in question. If you have, add only the quantity. If not, add the item and price.

Follow the code:

foreach (GridViewRow row in GridView1.Rows)
{
    // Pegando os produtos
    Label lblProdutoID = row.FindControl("lblProdutoID") as Label;
    var preco = (from p in db.Produtos
                 where p.ProdutoID == Convert.ToInt32(lblProdutoID.Text)
                 select p.Preco).SingleOrDefault();

    var produto = (from p in db.Produtos
                 where p.ProdutoID == Convert.ToInt32(lblProdutoID.Text)
                 select p).SingleOrDefault();

    int dropDownListText = Convert.ToInt32(((DropDownList)row.FindControl("ddlQtde")).SelectedItem.Value);

    if ((dropDownListText != 0))
    {
        // aqui pegamos os produtos caso tenha no detalhes do pedido
        var nte = (from p in db.DetalhesPedidos
                   where p.PedidoID == Convert.ToInt32(Session["pedido"])
                   where p.ProdutoID == Convert.ToInt32(lblProdutoID.Text)
                   select p).SingleOrDefault();

        if (nte == null)
        {
            DetalhesPedido dp = new DetalhesPedido
            {
                UsuarioID = usurioid,
                PedidoID = novopedido.PedidoID,
                ProdutoID = produto.ProdutoID,
                Qtde = Convert.ToInt32(dropDownListText),
                Preco = Convert.ToDecimal(produto.Preco),
                Total = Convert.ToDecimal(produto.Preco * Convert.ToDecimal(dropDownListText)),
            };

            db.DetalhesPedidos.InsertOnSubmit(dp);
            db.SubmitChanges();
        }
        else if (nte.ProdutoID == produto.ProdutoID)
        {
            nte.Qtde += dropDownListText;
            nte.Total = produto.Preco * nte.Qtde;
            db.SubmitChanges();
        }
    }
}
    
asked by anonymous 23.10.2014 / 19:51

0 answers