private void btnDelete_Click(object sender, System.EventArgs e)
        {
            try
            {
                var result = MessageBox.Show("Deseja excluir esse Registro? ", "Exclusão", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    if (_pedido.ItensPedido != null && _pedido.ItensPedido.Count > 0)
                    {
                        for (int i = 0; i < _pedido.ItensPedido.Count; i++)
                        {
                            ItensPedidoRepository.Delete(_pedido.ItensPedido[i]);
                        }
                    }

                    if (_pedido.ItensPedidoDelete != null && _pedido.ItensPedidoDelete.Count > 0)
                    {
                        for (int i = 0; i < _pedido.ItensPedidoDelete.Count; i++)
                        {
                            ItensPedidoRepository.Delete(_pedido.ItensPedidoDelete[i]);
                        }
                    }

                    PedidoRepository.Delete(_pedido);
                }

                MessageBox.Show("Registro excluído com sucesso!", "Sucesso", MessageBoxButtons.OK);
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK);
            }
        }
        private void btnSave_Click(object sender, System.EventArgs e)
        {
            DirtyFields(this, _pedido);
            DirtyFields02();
            if (_pedido.Id == 0)
            {
                PedidoRepository.Save(_pedido);
                _pedido.Id = PedidoRepository.GetMaxId(_pedido);

                if (_pedido.ItensPedido != null && _pedido.ItensPedido.Count > 0)
                {
                    foreach (var item in _pedido.ItensPedido)
                    {
                        item.IdPedido = _pedido.Id;
                        ItensPedidoRepository.Save(item);
                    }
                }

                if (_pedido.EnderecoEntrega != null)
                {
                    if (_pedido.NovoEnderecoEntrega != null)
                    {
                        _pedido.EnderecoEntrega = _pedido.NovoEnderecoEntrega;
                    }
                    _pedido.EnderecoEntrega.PedidoId = _pedido.Id;
                    EnderecoRepository.Save(_pedido.EnderecoEntrega);
                }
                else if (_pedido.NovoEnderecoEntrega != null)
                {
                    _pedido.EnderecoEntrega = _pedido.NovoEnderecoEntrega;
                }
                if (_pedido.EnderecoEntrega == null)
                {
                    var lista = grdEndereco.DataSource as BindingList <EnderecoEntrega>;
                    if (lista != null && lista.Count > 0)
                    {
                        _pedido.EnderecoEntrega = lista[0];
                    }
                }

                _pedido.EnderecoEntrega.PedidoId = _pedido.Id;
                EnderecoRepository.Save(_pedido.EnderecoEntrega);
            }
            else
            {
                //Verifica se o item é novo ou edição
                PedidoRepository.Update(_pedido);
                foreach (var item in _pedido.ItensPedido)
                {
                    if (item.Id == 0)
                    {
                        item.IdPedido = _pedido.Id;
                        PedidoItemRepository.Save(item);
                    }
                    else
                    {
                        PedidoItemRepository.Update02(item);
                    }
                }

                if (_pedido.ItensPedidoDelete != null && _pedido.ItensPedidoDelete.Count > 0)
                {
                    foreach (var item in _pedido.ItensPedidoDelete)
                    {
                        PedidoItemRepository.Delete(item);
                    }
                }

                if (_pedido.EnderecoEntrega != null)
                {
                    if (_pedido.NovoEnderecoEntrega != null)
                    {
                        int idDelete = _pedido.EnderecoEntrega.Id;
                        EnderecoRepository.Delete(_pedido.EnderecoEntrega);
                        _pedido.EnderecoEntrega = _pedido.NovoEnderecoEntrega;
                        EnderecoRepository.Save(_pedido.EnderecoEntrega);
                    }
                    else
                    {
                        EnderecoRepository.Update02(_pedido.EnderecoEntrega);
                    }
                }
            }

            this.Close();
        }
 public ItensPedidoServices()
 {
     _itensPedidoRepository = new ItensPedidoRepository();
 }