示例#1
0
 //Cadastra no XML um novo trecho, utiliza Lista por causa do funcionamento do XML
 public bool CadastrarTrecho(Trecho Trecho, ref List<Trecho> listaTrecho)
 {
     if (listaTrecho.Count(r => r.cidadeA.Equals(cidadeA, StringComparison.CurrentCultureIgnoreCase)) > 0 && //Neste 'if'valida os campos preenchidos para cidadeA, cidadeB 
         listaTrecho.Count(r => r.CidadeB.Equals(CidadeB, StringComparison.CurrentCultureIgnoreCase)) > 0 || //e distância. Caso já exista esse trecho (A mesma distância para 
         listaTrecho.Count(r => r.CidadeA.Equals(CidadeB, StringComparison.CurrentCultureIgnoreCase)) > 0 && //os pontos A e B, não dependendo da ordem) a função retorna falso
         listaTrecho.Count(r => r.CidadeB.Equals(CidadeA, StringComparison.CurrentCultureIgnoreCase)) > 0)   // e não é possível cadastrar, sendo apontado no datagridview (tabela)
     {                                                                                                       //de cadastro de trechos onde está o trecho já cadastrado
         
         return false;
     }
     else
     {
         listaTrecho.Add(Trecho);                
         return true;
     }
 }
        private void botao_CadastrarTrecho(object sender, EventArgs e)
        {
            //limpa a seleção do gridview sempre que o botão cadastrar for presionado
            dataGrid_TrechosCadastrados.ClearSelection();

            //Verificação se o usuário preencheu todos os campos corretamente antes do cadastro, caso contrário retorna erro
            if (textBox_CidadeA.Text != "" && textBox_CidadeB.Text != "" && textBox_Distancia.Text != "")
            {
                if (validaStr(textBox_CidadeA.Text) && validaStr(textBox_CidadeB.Text))
                {
                    if (validaNum(textBox_Distancia.Text))
                    {
                        Trecho trechos = new Trecho()
                        {
                            CidadeA = RemoveAcentos(textBox_CidadeA.Text).ToUpper(),
                            CidadeB = RemoveAcentos(textBox_CidadeB.Text).ToUpper(),
                            DistanciaCidades = float.Parse(textBox_Distancia.Text)
                        };

                        if (trechos.CadastrarTrecho(trechos, ref listaTrecho))
                        {
                            trechos.SalvarTrechos(ref listaTrecho);
                            Trecho.CarregarTrechos(ref listaTrecho);
                            dataGrid_TrechosCadastrados.DataSource = ListarTodos();
                            dataGrid_TrechosCadastrados.CurrentCell = dataGrid_TrechosCadastrados.Rows[dataGrid_TrechosCadastrados.Rows.Count - 1].Cells[0];

                            //limpeza dos campos
                            textBox_CidadeA.Text = null;
                            textBox_CidadeB.Text = null;
                            textBox_Distancia.Text = null;
                        }

                        else
                        {
                            MessageBox.Show(@"Este Trecho já foi cadastrado", @"Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);


                            for (int i = 0; i < dataGrid_TrechosCadastrados.Rows.Count - 1; i++)
                            {
                                //textBox_CidadeA.CharacterCasing = CharacterCasing.Upper;
                                if (dataGrid_TrechosCadastrados.Rows[i].Cells[0].Value.ToString().Equals(textBox_CidadeA.Text.ToUpper()) && dataGrid_TrechosCadastrados.Rows[i].Cells[1].Value.ToString().Equals(textBox_CidadeB.Text.ToUpper()))
                                {
                                    dataGrid_TrechosCadastrados.Rows[i].Cells[0].Selected = true;
                                }
                                if (dataGrid_TrechosCadastrados.Rows[i].Cells[0].Value.ToString().Equals(textBox_CidadeB.Text.ToUpper()) && dataGrid_TrechosCadastrados.Rows[i].Cells[1].Value.ToString().Equals(textBox_CidadeA.Text.ToUpper()))
                                {
                                    dataGrid_TrechosCadastrados.Rows[i].Cells[0].Selected = true;
                                }
                            }
                        }
                    }
                    else
                        MessageBox.Show(@"Distância deve ser um valor numérico", @"Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                    MessageBox.Show(@"O nome das cidades não pode conter caracteres especiais", @"Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
                MessageBox.Show(@"Todos os campos devem ser preenchidos para o cadastro.", @"Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);

        }
 private void FormCadTrechos_Load(object sender, EventArgs e)
 {
     Trecho = new Trecho();
     Trecho.CarregarTrechos(ref listaTrecho);
     dataGrid_TrechosCadastrados.DataSource = ListarTodos();
     dataGrid_TrechosCadastrados.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
     dataGrid_TrechosCadastrados.Columns[0].HeaderText = "Cidade A";
     dataGrid_TrechosCadastrados.Columns[1].HeaderText = "Cidade B";
     dataGrid_TrechosCadastrados.Columns[2].HeaderText = "Distância Entre Cidades";
 }