/// <summary>
        /// Exclui um endereço de uma rota
        /// </summary>
        /// <param name="endereco">endereco rota</param>
        /// <param name="notificacao"></param>
        /// <returns>verdadeiro se não houver erros</returns>
        public bool RemoverEndereco(EnderecoRota endereco, out Notificacao notificacao)
        {
            notificacao = new Notificacao("Endereço removido da rota com sucesso", 's');

            if (!Validacoes(endereco, ref notificacao))// se nao validar
            {
                return false;
            }

            if (!new EnderecoRotaBD().Excluir(endereco))
            {
                notificacao = new Notificacao("Problema com Banco de Dados, notifique o administrador", 'e');
                return false;
            }

            return true;
        }
        /// <summary>
        /// Valida os campos necessários para adicionar ou remover um endereco em uma rota
        /// </summary>
        /// <param name="endereco">endereco a ser adicionado</param>
        /// <param name="notificacao"></param>
        /// <returns></returns>
        private bool Validacoes(EnderecoRota endereco, ref Notificacao notificacao)
        {
            if (endereco.Id <= 0)
            {
                notificacao = new Notificacao("id do endereço é invalida", 'e');
                return false;
            }

            if (endereco.Pessoa.Id <= 0)
            {
                notificacao = new Notificacao("id da pessoa é invalida", 'e');
                return false;
            }

            if (endereco.Rota.Id <= 0)
            {
                notificacao = new Notificacao("id da Rota é invalida", 'e');
                return false;
            }
            return true;
        }
        /// <summary>
        /// Adiciona um endereço na rota
        /// </summary>
        /// <param name="endereco">Endereco Rota</param>
        /// <returns>verdadeiro se inserido</returns>
        public bool Inserir(EnderecoRota endereco)
        {
            _bd = new Persistencia();
            try
            {
                _bd.Cmd.CommandText = @"Insert into enderecosRota (rota_id, fornecedor_id, endereco_id) values (@rotaId,@pessoaId,@enderecoId)";
                _bd.Cmd.Parameters.AddWithValue("@rotaId", endereco.Rota.Id);
                _bd.Cmd.Parameters.AddWithValue("@pessoaId", endereco.Pessoa.Id);
                _bd.Cmd.Parameters.AddWithValue("@enderecoId", endereco.Id);

                if (_bd.ExecuteNonQuery() <= 0)
                {
                    return false;//nao gravou nada
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        /// <summary>
        /// Remove um endereço na rota
        /// </summary>
        /// <param name="endereco">Endereco Rota</param>
        /// <returns>verdadeiro se excluido</returns>
        public bool Excluir(EnderecoRota endereco)
        {
            _bd = new Persistencia();
            try
            {
                _bd.Cmd.CommandText = @"Delete from enderecosRota where
                rota_id = @rotaId and
                fornecedor_id= @pessoaId and
                endereco_id = @enderecoId ";
                _bd.Cmd.Parameters.AddWithValue("@rotaId", endereco.Rota.Id);
                _bd.Cmd.Parameters.AddWithValue("@pessoaId", endereco.Pessoa.Id);
                _bd.Cmd.Parameters.AddWithValue("@enderecoId", endereco.Id);

                if (_bd.ExecuteNonQuery() <= 0)
                {
                    return false;//nao gravou nada
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
Beispiel #5
0
        protected List<Notificacao> notificacoes = new List<Notificacao>(); //notificações

        #endregion Fields

        #region Methods

        public void BtnOpcoes(object sender, CommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "trocarAba":
                    {
                        tab.Value = tab.Value == "a" ? "b" : "a";
                        boxRotas.Visible = tab.Value == "a";
                        boxEnderecos.Visible = tab.Value == "b";

                        if (boxRotas.Visible)//gereciar rotas
                        {
                            ListarRotas();
                        }
                        else//gerenciar enderecos rotas
                        {
                            ddlRotas.DataSource = new RotaCtrl().BuscaDescricao();
                            ddlRotas.DataValueField = "Id";
                            ddlRotas.DataTextField = "Descricao";
                            ddlRotas.DataBind();
                            ListarEnderecosRota();
                        }

                        ListarNotificacoes();
                        LimparCampos();//zera rota id também!
                    }
                    break;
                case "gravar":
                    {
                        var rota = new Rota(Convert.ToInt32(rotaId.Value), ttbDescricao.Text);

                        if (new RotaCtrl().Gravar(rota, out notificacoes))
                        {
                            LimparCampos();
                            ListarRotas();
                        }

                        ListarNotificacoes();

                    } break;
                case "cancelar":
                    {
                        LimparCampos();
                        ListarRotas();
                        ListarNotificacoes();
                    } break;
                case "remover":
                    {
                        Notificacao notificacao;
                        var rota = new Rota(Convert.ToInt32(rotaId.Value));

                        bool excluiu = new RotaCtrl().Excluir(rota, out notificacao);
                        notificacoes.Add(notificacao);

                        if (excluiu)
                        {
                            LimparCampos();//zera id e limpa caso o amado usuário tenha solicitado edicao antes de excluir a categoria...
                            ListarRotas();
                        }

                        ListarNotificacoes();
                    } break;
                case "editar":
                    {
                        Notificacao notificacao;
                        var rota = new Rota(Convert.ToInt32(e.CommandArgument));

                        bool recuperou = new RotaCtrl().Recuperar(rota, out notificacao);

                        if (recuperou)
                        {
                            btnCancelar.Visible = true;
                            rotaId.Value = rota.Id.ToString();//salva a id em edicao
                            ttbDescricao.Text = rota.Descricao;//exibe descricao selecionada
                        }
                        else
                        {//informa o erro
                            notificacoes.Add(notificacao);
                        }
                        ListarRotas();
                        ListarNotificacoes();

                    } break;

                case "AddRota":
                    {
                        Notificacao notificacao;
                        var enderecoRota = new EnderecoRota(Convert.ToInt32(e.CommandArgument),
                                                            new Pessoa(Convert.ToInt32(pesId.Value)),
                                                            new Rota(Convert.ToInt32(ddlRotas.SelectedValue)));

                        if(!new EnderecoRotaCtrl().AdicionarEndereco(enderecoRota, out notificacao))
                        {
                            notificacoes.Add(notificacao);
                        }
                        ListarEnderecosRota();//re lista as rotas
                        ListarEnderecosPessoa();// re lista as pessoas
                        ListarNotificacoes();// re lista as notificacoes
                    } break;
                case "RemoveRota":
                    {
                        Notificacao notificacao;
                        string[] ids = e.CommandArgument.ToString().Split(',');
                        var enderecoRota = new EnderecoRota(Convert.ToInt32(ids[0]),
                                                            new Pessoa(Convert.ToInt32(ids[1])),
                                                            new Rota(Convert.ToInt32(ddlRotas.SelectedValue)));

                        if (!new EnderecoRotaCtrl().RemoverEndereco(enderecoRota, out notificacao))
                        {
                            notificacoes.Add(notificacao);
                        }
                        ListarEnderecosRota();//re lista as rotas
                        ListarEnderecosPessoa();// re lista as pessoas
                        ListarNotificacoes();// re lista as notificacoes

                    } break;
            }
        }