Beispiel #1
0
 private void RemoveLinhaASK(DataGridView datagrid, string nome_coluna, DataGridViewCellEventArgs e, int x)
 {
     try
     {
         int contador = 0; // verifica se a linha está totalmente vazia
         if (datagrid.Columns[e.ColumnIndex].Name == nome_coluna)
         {
             DataGridViewRow obj = datagrid.Rows[e.RowIndex];
             for (int i = 0; i < x; i++)
             {
                 if (String.IsNullOrEmpty(obj.Cells[i].Value.ToString()))
                 {
                     contador++;
                 }
             }
             if (contador == x - 1)
             {
                 return;
             }
             //DialogResult resu = System.Windows.Forms.MessageBox.Show("Deseja realmente excluir ?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
             if (MessageBox.ShowMessageBoxYesNo("question", "Deseja realmente excluir ?", "Confirmar exclusão", DarkTheme).Equals("sim"))
             {
                 RemoveLinhaUnica(datagrid, e);
                 DataGridViewRow linha_select = datagrid.Rows[e.RowIndex];
                 datagrid.Rows.Remove(linha_select);
             }
         }
     }
     catch (Exception)
     {
         return;
     }
 }
Beispiel #2
0
 private void sairToolStripMenuItem_Click_1(object sender, EventArgs e)
 {
     if (MessageBox.ShowMessageBoxYesNo("question", "Deseja realmente sair do iCrypto?", "Fechar aplicativo", DarkTheme).Equals("sim"))
     {
         banco.Close();
         Application.Exit();
     }
 }
Beispiel #3
0
        private void btEnvia_Click(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(tbEmail.Text))
                {
                    MessageBox.ShowMessageBoxOK("error", "Insira um e-mail válido", "Erro", DarkTheme);
                    tbEmail.Focus();
                    return;
                }
                if (!tbEmail.Text.Split('@')[1].Contains('.'))
                {
                    MessageBox.ShowMessageBoxOK("error", "Insira um e-mail com domínio válido.", "Erro", DarkTheme);
                    tbEmail.Focus();
                    return;
                }

                if (String.IsNullOrEmpty(tbSenha.Text))
                {
                    MessageBox.ShowMessageBoxOK("error", "Insira uma senha", "Erro", DarkTheme);
                    tbSenha.Focus();
                    return;
                }
                if (!VerificaEmail())
                {
                    return;
                }
                // CASO NAO TENHA NADA DE ERRADO FAÇA O LOGIN..
                fromMail = tbEmail.Text;
                string password = tbSenha.Text;
                string servidor = tbSmtp.Text;
                if (servidor.Length <= 0)
                {
                    MessageBox.ShowMessageBoxOK("error", "Digite um servidor SMTP", "Erro", DarkTheme);
                    return;
                }
                int porta = 0;
                if (String.IsNullOrEmpty(tbPorta.Text.ToString()))
                {
                    MessageBox.ShowMessageBoxOK("error", "Campo de porta é obrigatório.", "Erro", DarkTheme);
                    return;
                }
                try
                {
                    porta = Convert.ToInt32(tbPorta.Text);
                }
                catch (FormatException)
                {
                    MessageBox.ShowMessageBoxOK("error", "Porta só deve ser digitada com números inteiros", "Erro", DarkTheme);
                    return;
                }


                var Login = new SmtpClient(servidor, porta);
                PassaArgumento(Login);

                // Faz login
                Login.UseDefaultCredentials = false;
                Login.Credentials           = new NetworkCredential(fromMail, password);

                if (tbEmailTo.Text.Length == 0)
                {
                    MessageBox.ShowMessageBoxOK("error", "Digite um email destinatário", "Erro", DarkTheme);
                    return;
                }

                MailMessage messageMail = new MailMessage();
                messageMail.From = new MailAddress(fromMail);
                messageMail.To.Add(new MailAddress(tbEmailTo.Text));
                messageMail.Body    = richConteudo.Text;
                messageMail.Subject = richAssunto.Text.Length > 0 ? messageMail.Subject = richAssunto.Text : messageMail.Subject = "";

                // Verifica se há anexos disponveis
                // Se houver, faça um Attachment e verifique o tamanho total deles.
                if (dataGridViewAnexo.Rows.Count > 1)
                {
                    long tamanho_arquivos = 0;
                    for (int i = 0; i < dataGridViewAnexo.Rows.Count - 1; i++)
                    {
                        string anexo = dataGridViewAnexo.Rows[i].Cells[0].Value.ToString();
                        string dir   = dataGridViewAnexo.Rows[i].Cells[3].Value.ToString();
                        dir = dir + "\\" + anexo;
                        Attachment attach_anexo = new Attachment(dir);
                        messageMail.Attachments.Add(attach_anexo);

                        FileInfo tamanho = new FileInfo(dir);
                        tamanho_arquivos += tamanho.Length;
                    }
                    if (tamanho_arquivos > 26214400L)
                    {
                        MessageBox.ShowMessageBoxOK("error", "Os arquivos anexados resultam em um espaço maior que" +
                                                    " 25MB. Email não será enviado.", "Erro", DarkTheme);
                        return;
                    }
                }

                cliente.EnableSsl = true; // + segurança, envio criptografado


                try
                {
                    if (tbEmail.Text.Contains("@gmail"))
                    {
                        frmMenosSeguroGmail obj = new frmMenosSeguroGmail(DarkTheme);
                        obj.ShowDialog();
                        string ret = obj.retornoString();
                        if (ret.Equals("sim"))
                        {
                            System.Diagnostics.Process.Start("https://myaccount.google.com/lesssecureapps");
                            System.Threading.Thread.Sleep(1000);
                            if (MessageBox.ShowMessageBoxYesNo("question", "A opção menos segura foi ativada?", "Confirmar ativação", DarkTheme).Equals("sim"))
                            {
                                cliente.Send(messageMail);
                                MessageBox.ShowMessageBoxOK("information", "E-mail enviado para " + tbEmailTo.Text, "Aviso", DarkTheme);
                                return;
                            }
                            else
                            {
                                MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "Aviso", DarkTheme);
                                return;
                            }
                        }
                        else if (ret.Equals("ativado"))
                        {
                            try
                            {
                                cliente.Send(messageMail);
                                MessageBox.ShowMessageBoxOK("correct", "E-mail enviado para " + tbEmailTo.Text, "Aviso", DarkTheme);
                            }
                            catch (Exception ex)
                            {
                                MessageBox.ShowMessageBoxOK("error", "O envio falhou!" +
                                                            "\n" +
                                                            "\nCertifique que o e-mail está correto e é válido" +
                                                            "\nCertifique que a senha está correta (Deve ser a senha do e-mail e não do iCrypto)" +
                                                            "\nCaso seja gmail, certique que a opção 'Acesso a apps menos seguros' está ativada", "Ocorreu um erro", DarkTheme);
                            }
                        }
                        else
                        {
                            MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "Aviso", DarkTheme);
                            return;
                        }
                    }
                    else
                    {
                        cliente.Send(messageMail);
                        MessageBox.ShowMessageBoxOK("correct", "E-mail enviado para " + tbEmailTo.Text, "Aviso", DarkTheme);
                    }
                }
                catch (Exception)
                {
                    return;
                }

                //cliente.Send(messageMail);
                //MessageBox.Show("E-mail enviado para " + tbEmailTo.Text, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (SmtpException)
            {
                MessageBox.ShowMessageBoxOK("error", "Informações de configurações erradas.", "Erro", DarkTheme);
                return;
            }
            catch (FormatException ex)
            {
                MessageBox.ShowMessageBoxOK("error", ex.Message, "Erro", DarkTheme);
                return;
            }
            catch (Exception)
            {
                MessageBox.ShowMessageBoxOK("error", "O envio falhou!" +
                                            "\n" +
                                            "\nCertifique que o e-mail está correto e é válido" +
                                            "\nCertifique que a senha está correta (Deve ser a senha do e-mail e não do iCrypto)" +
                                            "\nCaso seja gmail, certique que a opção 'Acesso a apps menos seguros' está ativada", "Ocorreu um erro", DarkTheme);
                return;
            }
        }
Beispiel #4
0
        private void btEncripta_Click(object sender, EventArgs e)
        {
            if (File.Exists(@"C:\iCrypto\" + "ZipadoAES.rar"))
            {
                File.Delete(@"C:\iCrypto\" + "ZipadoAES.rar");
            }


            ArrayList apagar_linha   = new ArrayList();
            ArrayList arquivos_email = new ArrayList();
            int       nlinhas        = dgvAESFiles.Rows.Count;

            for (int i = 0; i < nlinhas; i++)
            {
                // Encripta o arquivo com nomearquivo.extensao.aes
                string fileName = dgvAESFiles.Rows[i].Cells[0].Value.ToString();

                // VERIFICA SE O ARQUIVO EXISTE, SE NÃO EXISTIR, TIRE DA LISTA
                // Por que? R: O usuario pode ter excluido o arquivo.
                if (!File.Exists(dgvAESFiles.Rows[i].Cells[3].Value.ToString() + @"\" + fileName))
                {
                    apagar_linha.Add(fileName);
                    continue;
                }

                // PROCESSO DE ENCRIPTAR O ARQUIVO
                if (fileName.Contains(".aes"))
                {
                    lblStatus.Text = "Ambíguo";
                    DataGridViewRow linha = dgvAESFiles.Rows[i];
                    dgvAESFiles.Rows.Remove(linha);
                    lblStatus.ForeColor = System.Drawing.Color.Red;
                    nlinhas            -= 1;
                    i -= 1;

                    continue;
                }
                string arquivo_en = EncriptaArquivo(fileName, dgvAESFiles.Rows[i].Cells[3].Value.ToString());

                // JOGA O NOME DO ARQUIVO NO BANCO
                JogaemBancoArquivo("Criptografar", fileName, arquivo_en.Split('\\')[arquivo_en.Split('\\').Length - 1]);
                banco.Close();

                // verifica se a checkbox está ativa, se estiver, add na arraylist para enviar o email posteriormente
                if (chkEnviaArquivo.Checked)
                {
                    arquivos_email.Add(arquivo_en);
                }

                // Apagar arquivos do datagrid
                arquivo_original = fileName;
                for (int y = 0; y < dgvAESFiles.Rows.Count; y++)
                {
                    if (dgvAESFiles["colunaArquivo", y].Value == arquivo_original)
                    {
                        apagar_linha.Add(arquivo_original); //linha x coluna 1
                    }
                }

                FileInfo infos = new FileInfo(arquivo_en);
                dgvAESFiles.Rows.Add(infos.Name, infos.Length.ToString(), infos.Extension, infos.DirectoryName);
                dgvAESFiles.Refresh();

                IncrementaProgressBar();

                // Reseta Progressbar e mostra o "LOG"
                progressBarFile.Value = 0;
                lblStatus.Text        = "Encriptado";
                lblStatus.ForeColor   = Color.Green;
            }
            // apagar todos encriptados (do arraylist que deve ser apagado)
            foreach (string arquivos in apagar_linha)
            {
                // busca pela linha
                for (int i = 0; i < dgvAESFiles.Rows.Count; i++)
                {
                    if (dgvAESFiles["colunaArquivo", i].Value.ToString().Equals(arquivos))
                    {
                        DataGridViewRow obj = dgvAESFiles.Rows[i];
                        dgvAESFiles.Rows.Remove(obj);
                    }
                }
            }


            tbArquivo.Clear();
            // ‭26214400‬bytes = 25MB (MAXIMO)
            if (chkEnviaArquivo.Checked)
            {
                // necessário calcular o espaço de todos arquivos no array, para ver se
                // passa de 25MB

                if (VerificaMBArquivos(arquivos_email))
                {
                    SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", arquivos_email, usuario, DarkTheme);
                    envioEmail.ShowDialog();
                }
                else
                {
                    if (error == 1)
                    {
                        return;
                    }
                    // comprime o arquivo

                    /*
                     * DialogResult retorno = System.Windows.Forms.MessageBox.Show("Arquivos resultam em um espaço maior que 25MB.. Deseja " +
                     *  "comprimir esses arquivos ? ", "Aviso", MessageBoxButtons.YesNo,
                     *  MessageBoxIcon.Question);
                     */
                    string defaultDirectory = @"C:\iCrypto\AESFile\";

                    if (MessageBox.ShowMessageBoxYesNo("question", "Arquivos resultam em um espaço maior que 25MB.. Deseja " +
                                                       "comprimir esses arquivos ? ", "Aviso", DarkTheme).Equals("sim"))
                    {
                        if (File.Exists(@"C:\iCrypto\" + "ZipadoAES.rar"))
                        {
                            File.Delete(@"C:\iCrypto\" + "ZipadoAES.rar");
                        }


                        if (!Directory.Exists(defaultDirectory))
                        {
                            Directory.CreateDirectory(defaultDirectory);
                        }
                        else
                        {
                            Directory.Delete(defaultDirectory, true);
                            Directory.CreateDirectory(defaultDirectory);
                        }
                        System.Threading.Thread.Sleep(900);
                        foreach (string complete_file in arquivos_email)
                        {
                            string only_Name = complete_file.Split('\\')[complete_file.Split('\\').Length - 1];//Somente o nome do arquivo
                            File.Copy(complete_file, defaultDirectory + only_Name, true);
                        }
                        System.Threading.Thread.Sleep(900);
                        ZipFile.CreateFromDirectory(defaultDirectory, @"C:\iCrypto\" + "ZipadoAES.rar");
                        ArrayList tmp = new ArrayList()
                        {
                            @"C:\iCrypto\ZipadoAES.rar"
                        };
                        if (!VerificaMBArquivos(tmp))
                        {
                            MessageBox.ShowMessageBoxOK("error", "Arquivo comprimido maior que 25MB, impossível ser enviado.",
                                                        "Erro", DarkTheme);
                            return;
                        }
                        else
                        {
                            SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", tmp, usuario, DarkTheme);
                            envioEmail.ShowDialog();
                        }
                        // APAGA O ZIPADO (QUE É UM ARQUIVO TEMPORARIO)
                        File.Delete(@"C:\iCrypto\ZipadoAES.rar");
                    }
                    else
                    {
                        MessageBox.ShowMessageBoxOK("error", "Impossível de ser anexado.", "Erro", DarkTheme);
                        return;
                    }
                }
            }
        }