示例#1
0
 private void btnApaga_Click(object sender, EventArgs e)
 {
     if (referencia.id > 0)
     {
         if (InformaDiag.ConfirmaSN("Remover um registro pode afetar vários outros. Recomenda-se observar as dependências antes de continuar" + '\n' + "Prosseguir?") == DialogResult.Yes)
         {
             if (InformaDiag.ConfirmaOkCancel("Esta ação é irreversível! Confirme a exculsão.") == DialogResult.OK)
             {
                 c.ApagaLinha(tabelasBd.REFERENCIAS, "Cod=" + referencia.Cod.ToString());
                 resultado.RemoveAt(p);
                 if (resultado.Count > 0)
                 {
                     try
                     {
                         referencia = resultado.ElementAt(--p);
                     }
                     catch (IndexOutOfRangeException)
                     {
                         referencia = resultado.ElementAt(++p);
                     }
                     MostraModel();
                 }
                 else
                 {
                     LimpaModel();
                     LimpaCampos();
                 }
             }
         }
     }
 }
        private void MostraRegistroAtivo()
        {
            chkHtonico.Checked    = ativo.heterotonico;
            chkHsemantico.Checked = ativo.heterossemantico;
            chkHgenerico.Checked  = ativo.heterogenerico;

            resP = Palavra.ConverteObject(crud.SelecionarTabela(tabelasBd.PALAVRA, Palavra.ToListTabela(true), "id=" + ativo.equivalente.ToString()));
            comboDestino.Text = resP.First().lema;

            txtApresentacao.Value    = ativo.nOrdem;
            txtExemplo.Text          = ativo.exemplo;
            txtExemploTraduzido.Text = ativo.exemplo_traduzido;

            resRef = Referencia.ConverteObject(crud.SelecionarTabela(tabelasBd.REFERENCIAS, Referencia.ToListTabela(true), "Id=" + ativo.Referencia.ToString()));
            if (resRef.Count > 0)
            {
                comboRef.Text = resRef.First().descricao;
            }

            resRubrica = MarcaUso.ConverteObject(crud.SelecionarTabela(tabelasBd.MARCAS_USO, MarcaUso.ToListTabela(true), "Id=" + ativo.MarcaUso.ToString()));
            if (resRubrica.Count > 0)
            {
                ComboRubrica.Text = resRubrica.First().descricao;
            }
            oldEqAt           = ativo;
            txtCultura.Text   = ativo.notasCulturais;
            txtGramatica.Text = ativo.notasGramaticais;
        }
示例#3
0
 private void btnProx_Click(object sender, EventArgs e)
 {
     if (p < resultado.Count)
     {
         referencia = resultado.ElementAt(++p);
         MostraModel();
     }
 }
示例#4
0
 private void btnAnt_Click(object sender, EventArgs e)
 {
     if (p > 0)
     {
         referencia = resultado.ElementAt(--p);
         MostraModel();
     }
 }
        private List <string> criaListaValores(Palavra p, Referencia r)
        {
            List <string> sai = new List <string>
            {
                //cg.Definicao,
                //String.Concat(p.referencia_exemplo,"\n", p.ref_ex_tr),
                r.descricao,
                p.notas_gramatica,
                p.nota_cultura
            };

            return(sai);
        }
        public static List <Referencia> ConverteObject(List <object[]> entrada)
        {
            List <Referencia> s = new List <Referencia>();
            int        lim      = entrada.Count;
            Referencia pt       = new Referencia();

            object[] po = new object[Referencia.ToListTabela(true).Count];
            for (int i = 0; i < lim; i++)
            {
                po = entrada.ElementAt(i);
                pt = (Referencia)po;
                s.Add(pt);
            }
            return(s);
        }
示例#7
0
 private void btnPesquisa_Click(object sender, EventArgs e)
 {
     resultado = Referencia.ConverteObject(c.SelecionarTabela(tabelasBd.REFERENCIAS, Referencia.ToListTabela(true), "Cod='" + txtCodPSQ.Text + "'"));
     if (resultado.Count < 1)
     {
         InformaDiag.Informa("Nenhum resultado encontrado.");
         return;
     }
     referencia = resultado.First();
     MostraModel();
     if (resultado.Count > 1)
     {
         btnAnt.Visible  = true;
         btnProx.Visible = true;
     }
     p = 0;
     txtCod.ReadOnly = true;
 }
示例#8
0
        private void timerRef_Tick(object sender, EventArgs e)
        {
            string pesquisa;

            pesquisa = comboRef.Text;
            if (comboRef.Items.Count > 0)
            {
                comboRef.Items.Clear();
            }
            if (pesquisa.Length >= 5)
            {
                resRef = Referencia.ConverteObject(crud.SelecionarTabela(tabelasBd.REFERENCIAS, Referencia.ToListTabela(true), "Descricao LIKE '%" + pesquisa + "%'", "LIMIT 10"));
                foreach (Referencia re in resRef)
                {
                    comboRef.Items.Add(re.descricao);
                }
            }
            timerRef.Enabled = false; //prevenindo de floodar a combo
        }
示例#9
0
 private void btnSalva_Click(object sender, EventArgs e)
 {
     if (txtDesc.Text == "" || txtAno.Text == "" || txtAutor.Text == "" || txtCod.Text == "")
     {
         InformaDiag.Erro("Existem campos obrigatórios vazios!");
         return;
     }
     referencia.Cod       = txtCod.Text;
     referencia.descricao = txtDesc.Text;
     referencia.ano       = int.Parse(txtAno.Text);
     referencia.autor     = txtAutor.Text;
     if (referencia.id > 0)
     {
         c.UpdateLine(tabelasBd.REFERENCIAS, Referencia.ToListTabela(false), referencia.ToListValores(), "Id=" + referencia.id.ToString());
     }
     else
     {
         c.InsereLinha(tabelasBd.REFERENCIAS, Referencia.ToListTabela(false), referencia.ToListValores());
     }
     InformaDiag.InformaSalvo();
     LimpaCampos();
     LimpaModel();
 }
示例#10
0
        private void BtnStart_Click(object sender, EventArgs e)
        //NOTE: Usar ponto e vírgula como separador no CSV
        {
            string linha;

            string[] divisor;
            int      v = 0;

            progressBar1.MarqueeAnimationSpeed = 50;
            if (ComboTable.Text != "")
            {
                switch (ComboTable.Text)
                {
                case "Palavra":
                    ptlt = Palavra.ToListTabela();
                    ptlt.RemoveRange(Palavra.ToListTabela().Count - 2, 2);
                    v = ptlt.Count;
                    break;

                case "Marca de Uso":
                    v    = MarcaUso.ToListTabela().Count;
                    ptlt = MarcaUso.ToListTabela();
                    break;

                case "Referência":
                    v    = Referencia.ToListTabela().Count;
                    ptlt = Referencia.ToListTabela();
                    break;

                default:
                    throw new Exception("Não implementado");
                    break;
                }
                try
                {
                    StreamReader leitor = new StreamReader(LblArquivo.Text, Encoding.Default);
                    try
                    {
                        do
                        {
                            linha = leitor.ReadLine();
                            if (linha != "")
                            {
                                divisor = linha.Split(';');
                                //varificar dimensao antes de prosseguir
                                if (divisor.Count() != v)
                                {
                                    InformaDiag.Erro("A quantidade de colunas da entrada é diferente do destino.\nOperação Abortada.");
                                    progressBar1.MarqueeAnimationSpeed = 0;
                                    BtnStart.Enabled = false;
                                    LiberaArquivo(leitor);
                                    return;
                                }

                                for (int i = 0; i < divisor.GetLength(0); i++)
                                {
                                    if (divisor[i] == ptlt.ElementAt(i))
                                    {
                                        dataGridView1.Columns.Add(divisor[i], divisor[i]);
                                    }
                                    else
                                    {
                                        dataGridView1.Columns.Clear();
                                        EnumeraColunasFaltantes(divisor, ptlt);
                                        progressBar1.MarqueeAnimationSpeed = 0;
                                        BtnStart.Enabled = false;
                                        LiberaArquivo(leitor);
                                        return;
                                    }
                                }
                            }
                        } while (linha == "");
                        do //implementar thread
                        {
                            linha = leitor.ReadLine();
                            if (linha != "")
                            {
                                divisor = linha.Split(';');
                                dataGridView1.Rows.Add(divisor);
                            }
                        } while (leitor.Peek() != -1);
                        LiberaArquivo(leitor);
                    }
                    catch (IndexOutOfRangeException) { }
                    catch (EndOfStreamException) { }
                }

                catch (FileLoadException) {
                    return;
                }
                catch (FileNotFoundException) {
                    return;
                }
                catch (IOException)
                {
                    InformaDiag.Erro("O arquivo está inacessível no momento.\nTente novamente mais tarde.");
                    return;
                }
                BtnStart.Enabled   = false;
                BtnProcura.Enabled = false;
                BtnCancela.Enabled = true;
                BtnGrava.Enabled   = true;
                ComboTable.Enabled = false;
                progressBar1.MarqueeAnimationSpeed = 0;
            }
            else
            {
                InformaDiag.Informa("Escolha uma tabela destino");
            }
        }
示例#11
0
        private List <string> SanitizaValores(string tabela, List <string> valores)
        { //função para trocar possíveis valores em string por suas respectivas FK
            string saida;

            for (int i = 0; i < valores.Count; i++)
            {
                if (SanitizaString(valores.ElementAt(i), out saida))
                {
                    valores.RemoveAt(i);
                    valores.Insert(i, saida);
                }
            }
            if (tabela == tabelasBd.CONJUGACAO)
            {
                List <string> FKs = new List <string>();
                int           idx, c = 0;
                bool[]        fila = { false, false };
                ///TODO: Ah, enumeradores...
                /////faço issoi para evitar que seja lançada uma exceção e os valores perdidos no cast logo abaixo
                //rubrica
                idx = Palavra.ToListTabela().FindIndex(bs => bs == "Rubrica");
                if (!int.TryParse(valores.ElementAt(idx), out int conv) && (valores.ElementAt(idx) != ""))
                {
                    FKs.Add(valores.ElementAt(idx));
                    valores.RemoveAt(idx);
                    valores.Insert(idx, "0");
                    fila[c] = true;
                }
                c++;
                //referencia
                idx = Palavra.ToListTabela().FindIndex(bs => bs == "referencia_verbete");
                if (!int.TryParse(valores.ElementAt(idx), out conv) && (valores.ElementAt(idx) != ""))
                {
                    FKs.Add(valores.ElementAt(idx));
                    valores.RemoveAt(idx);
                    valores.Insert(idx, "0");
                    fila[c++] = true;
                }
                c++;

                Palavra teste = new Palavra();
                try
                {
                    teste = (Palavra)valores;
                }
                catch (InvalidCastException)
                {
                    LoggerErros(EnumErros.Erro_dados);
                    return(null);
                }
                catch (FormatException)
                {
                    LoggerErros(EnumErros.Erro_dados);
                    return(null);
                }

                List <MarcaUso>      lrub = new List <MarcaUso>();
                List <Referencia>    lref = new List <Referencia>();
                IEnumerator <string> ff   = FKs.GetEnumerator();
                c = 0;
                if (fila[c++])
                {
                    saida = ff.Current;
                    lrub  = MarcaUso.ConverteObject(operacoes.SelecionarTabela(tabelasBd.MARCAS_USO, MarcaUso.ToListTabela(true), "sigla='" + saida + "'"));
                    if (lrub.Count() > 0)
                    {
                        // teste.rubrica = lrub.First().id;
                    }
                    else
                    {
                        return(null);
                    }
                    ff.MoveNext();
                }
                if (fila[c])
                {
                    saida = ff.Current;
                    lref  = Referencia.ConverteObject(operacoes.SelecionarTabela(tabelasBd.REFERENCIAS, Referencia.ToListTabela(true), "Cod='" + saida + "'"));
                    if (lref.Count > 0)
                    {
                        // teste.referencia_verbete = lref.First().id;
                    }
                    else
                    {
                        return(null);
                    }
                }
                valores.Clear();
                valores.AddRange(teste.ToListValores());
            }
            return(valores);
        }