/// <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; } }
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; } }