示例#1
0
        private void UpdatePedidoProdutos(string[] selectedProdutos, Pedido pedidoToUpdate)
        {
            if (selectedProdutos == null)
            {
                pedidoToUpdate.ProdutoPedidos = new List <ProdutoPedido>();
                return;
            }

            var selectedProdutosHS = new HashSet <string>(selectedProdutos);
            var pedidoProdutos     = new HashSet <int>
                                         (pedidoToUpdate.ProdutoPedidos.Select(c => c.Produto.ID));

            foreach (var produto in _context.Produtos)
            {
                if (selectedProdutosHS.Contains(produto.ID.ToString()))
                {
                    if (!pedidoProdutos.Contains(produto.ID))
                    {
                        pedidoToUpdate.ProdutoPedidos.Add(new ProdutoPedido {
                            PedidoID = pedidoToUpdate.ID, ProdutoID = produto.ID
                        });
                    }
                }
                else
                {
                    if (pedidoProdutos.Contains(produto.ID))
                    {
                        ProdutoPedido produtoToRemove = pedidoToUpdate.ProdutoPedidos.SingleOrDefault(i => i.ProdutoID == produto.ID);
                        _context.Remove(produtoToRemove);
                    }
                }
            }
        }
 public virtual async Task Delete(int id)
 {
     try
     {
         var _obj = _context.Find <T>(id);
         _context.Remove(_obj);
         await _context.SaveChangesAsync();
     }
     catch (System.Exception)
     {
         throw;
     }
 }