private void dtRecomendacoes_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            try {
                string sTeste          = Convert.ToString(dtRecomendacoes.CurrentRow.Cells[0].Value);
                var    usuario_empresa = bd.usuario_empresa.Where(x => x.cnpj == sTeste).FirstOrDefault();
                var    usuario         = bd.usuario.Where(x => x.idUsuario == usuario_empresa.FK_usuario).FirstOrDefault();

                if (usuario != null)
                {
                    PegarIDEmpresa.IDEmpresa = usuario.idUsuario;
                }

                VoltarTelaRecomendacao.bVoltar = true;
                this.Hide();
                TelaVisualizacaoPerfilEmpresa f = new TelaVisualizacaoPerfilEmpresa();
                f.Closed += (s, args) => this.Close();
                f.ShowDialog();
            }
            catch (Exception)
            {
                Mensagem.aviso = "Erro de conexão com o banco!";
                TelaMensagemAviso f = new TelaMensagemAviso();
                f.ShowDialog();
            }
        }
        private void pb_voltar_Click(object sender, EventArgs e)
        {
            this.Hide();
            TelaVisualizacaoPerfilEmpresa f = new TelaVisualizacaoPerfilEmpresa();   //Volta para tela principal

            f.Closed += (s, args) => this.Close();
            f.ShowDialog();
        }
        private void carregarInicial()
        {
            try
            {
                if (txtCNPJ.Text != "" && txtArea.Text != "" && txtSite.Text != "" && cbEstado.Text != "" && txtCidade.Text != "" && txtBairro.Text != "" && txtRua.Text != "" && txtNumero.Text != "" && txtCEP.Text != "" && txtCNPJ.Text != "")
                {
                    if (testeCNPJ(txtCNPJ.Text))
                    {
                        if (txtCEP.Text.Length == 9)
                        {
                            try
                            {
                                var empresa = bd.usuario_empresa.Where(x => x.FK_usuario == UsuarioDados.Id).FirstOrDefault();

                                if (empresa == null)
                                {
                                    byte[] FotoArr;
                                    using (var ms = new MemoryStream())
                                    {
                                        pbFotoPerfil.Image.Save(ms, pbFotoPerfil.Image.RawFormat);     //Insere o perfil pela primeira vez
                                        FotoArr = ms.ToArray();
                                    }

                                    bool bExisteCNPJ = false;

                                    var teste = bd.usuario_empresa.Where(x => x.FK_usuario != 0).FirstOrDefault();

                                    if (teste != null)
                                    {
                                        int max = bd.usuario_empresa.Max(x => x.FK_usuario);
                                        for (int idx = 0; idx <= max; idx++)
                                        {
                                            var verifica = bd.usuario_empresa.Where(x => x.FK_usuario == idx).
                                                           Where(x => x.cnpj == txtCNPJ.Text).FirstOrDefault();

                                            if (verifica != null)
                                            {
                                                bExisteCNPJ = true;
                                            }
                                        }
                                    }

                                    if (!bExisteCNPJ)
                                    {
                                        usuario_empresa add = new usuario_empresa();
                                        add.cnpj        = txtCNPJ.Text;
                                        add.areaEmpresa = txtArea.Text;
                                        add.FK_usuario  = UsuarioDados.Id;

                                        bd.usuario_empresa.Add(add);
                                        bd.SaveChanges();

                                        perfil_empresa add2 = new perfil_empresa();
                                        add2.site               = txtSite.Text;
                                        add2.instagram          = txtInsta.Text;
                                        add2.twitter            = txtTwitter.Text;
                                        add2.facebookEmpresa    = txtFacebook.Text;
                                        add2.estadoEmpresa      = cbEstado.Text;
                                        add2.cidadeEmpresa      = txtCidade.Text;
                                        add2.bairroEmpresa      = txtBairro.Text;
                                        add2.ruaEmpresa         = txtRua.Text;
                                        add2.numeroEmpresa      = txtNumero.Text;
                                        add2.cepEmpresa         = txtCEP.Text;
                                        add2.FK_usuario_empresa = txtCNPJ.Text;
                                        add2.fotoEmpresa        = FotoArr;
                                        add2.descricaoEmpresa   = txtDesc.Text;

                                        bd.perfil_empresa.Add(add2);
                                        bd.SaveChanges();

                                        var teste2 = bd.usuario.Where(x => x.idUsuario == UsuarioDados.Id).ToList();

                                        teste2.ForEach(x =>
                                        {
                                            x.e_mailUsuario   = txtEmail.Text;
                                            x.telefoneUsuario = txtTelefone.Text;
                                            x.nomeUsuario     = txtNome.Text;
                                        });
                                        bd.SaveChanges();

                                        Mensagem.aviso = "Salvo com sucesso!";
                                        TelaMensagemAviso f = new TelaMensagemAviso();
                                        f.ShowDialog();

                                        if (!TesteTutorial.entrou)
                                        {
                                            TesteTutorial.entrou    = true;
                                            TesteTutorial.instrucao = false;
                                        }

                                        this.Hide();
                                        TelaVisualizacaoPerfilEmpresa f2 = new TelaVisualizacaoPerfilEmpresa();   //Volta para tela principal
                                        f2.Closed += (s, args) => this.Close();
                                        f2.ShowDialog();
                                    }
                                    else
                                    {
                                        Mensagem.aviso = "CNPJ Já cadastrado!";
                                        TelaMensagemAviso f = new TelaMensagemAviso();
                                        f.ShowDialog();
                                    }
                                }
                            }
                            catch (Exception)
                            {
                                Mensagem.aviso = "Erro ao salvar!";
                                TelaMensagemAviso f = new TelaMensagemAviso();
                                f.ShowDialog();
                            }
                        }
                        else
                        {
                            Mensagem.aviso = "CEP inválido!";
                            TelaMensagemAviso g = new TelaMensagemAviso();
                            g.ShowDialog();
                        }
                    }
                    else
                    {
                        Mensagem.aviso = "CNPJ inválido!";
                        TelaMensagemAviso g = new TelaMensagemAviso();
                        g.ShowDialog();
                    }
                }
                else
                {
                    Mensagem.aviso = "Alguns campos não foram preenchidos!";
                    TelaMensagemAviso f = new TelaMensagemAviso();
                    f.ShowDialog();
                }
            }
            catch (Exception)
            {
                Mensagem.aviso = "Erro ao conectar!";
                TelaMensagemAviso f = new TelaMensagemAviso();
                f.ShowDialog();
            }
        }
        private void salvar(object sender, EventArgs e)
        {
            try
            {
                var usuarioEmp = bd.usuario_empresa.Where(x => x.FK_usuario == UsuarioDados.Id).FirstOrDefault();

                if (usuarioEmp != null)
                {
                    var perfil = bd.perfil_empresa.Where(x => x.FK_usuario_empresa == usuarioEmp.cnpj).FirstOrDefault();

                    if (perfil.fotoEmpresa != null)
                    {
                        bTrocouImagem = true;
                    }
                }

                if (txtCNPJ.Text != "" && txtArea.Text != "" && txtSite.Text != "" && cbEstado.Text != "" && txtCidade.Text != "" && txtBairro.Text != "" && txtRua.Text != "" && txtNumero.Text != "" && txtCEP.Text != "" && txtCNPJ.Text != "")
                {
                    if (testeCNPJ(txtCNPJ.Text))
                    {
                        if (bTrocouImagem)
                        {
                            if (txtCEP.Text.Length == 9)
                            {
                                var usuEmp = bd.usuario_empresa.Where(x => x.FK_usuario == UsuarioDados.Id).FirstOrDefault();

                                if (usuEmp != null)
                                {
                                    try
                                    {
                                        var empresa = bd.usuario_empresa.Where(x => x.FK_usuario == UsuarioDados.Id).FirstOrDefault();

                                        if (empresa != null)
                                        {
                                            var perfil_empresa = bd.perfil_empresa.
                                                                 Where(x => x.FK_usuario_empresa == empresa.cnpj).FirstOrDefault();

                                            if (perfil_empresa != null)
                                            {
                                                var lista    = bd.perfil_empresa.Where(x => x.FK_usuario_empresa == empresa.cnpj).ToList();
                                                var usuario  = bd.usuario.Where(x => x.idUsuario == UsuarioDados.Id).ToList();
                                                var empresa2 = bd.usuario_empresa.Where(x => x.FK_usuario == UsuarioDados.Id).ToList();

                                                if (bTrocouImagem)
                                                {
                                                    byte[] Foto;
                                                    if (passou)
                                                    {
                                                        using (var ms = new MemoryStream())
                                                        {
                                                            pbFotoPerfil.Image.Save(ms, pbFotoPerfil.Image.RawFormat);
                                                            Foto = ms.ToArray();
                                                        }
                                                        lista.ForEach(x => { x.fotoEmpresa = Foto; });
                                                        bd.SaveChanges();
                                                    }

                                                    usuario.ForEach(y =>
                                                    {
                                                        y.nomeUsuario     = txtNome.Text;
                                                        y.telefoneUsuario = txtTelefone.Text;
                                                        y.e_mailUsuario   = txtEmail.Text;      //Salvar dados de perfil
                                                    });
                                                    bd.SaveChanges();

                                                    lista.ForEach(x =>
                                                    {
                                                        x.site               = txtSite.Text;
                                                        x.instagram          = txtInsta.Text;
                                                        x.twitter            = txtTwitter.Text;
                                                        x.facebookEmpresa    = txtFacebook.Text;
                                                        x.estadoEmpresa      = cbEstado.Text;
                                                        x.cidadeEmpresa      = txtCidade.Text;
                                                        x.bairroEmpresa      = txtBairro.Text;
                                                        x.ruaEmpresa         = txtRua.Text;
                                                        x.numeroEmpresa      = txtNumero.Text;
                                                        x.cepEmpresa         = txtCEP.Text;
                                                        x.FK_usuario_empresa = empresa.cnpj;
                                                        x.descricaoEmpresa   = txtDesc.Text;
                                                        x.cidadeEmpresa      = txtCidade.Text;
                                                    });

                                                    bd.SaveChanges();

                                                    empresa2.ForEach(y =>
                                                    {
                                                        y.areaEmpresa = txtArea.Text;
                                                    });

                                                    bd.SaveChanges();

                                                    Mensagem.aviso = "Salvo com sucesso!";
                                                    TelaMensagemAviso f = new TelaMensagemAviso();
                                                    f.ShowDialog();

                                                    if (!TesteTutorial.entrou)
                                                    {
                                                        TesteTutorial.entrou    = true;
                                                        TesteTutorial.instrucao = false;
                                                    }

                                                    this.Hide();
                                                    TelaVisualizacaoPerfilEmpresa f2 = new TelaVisualizacaoPerfilEmpresa();   //Volta
                                                    f2.Closed += (s, args) => this.Close();
                                                    f2.ShowDialog();
                                                }
                                                else
                                                {
                                                    Mensagem.aviso = "Adicione uma imagem!";
                                                    TelaMensagemAviso f = new TelaMensagemAviso();
                                                    f.ShowDialog();
                                                }
                                            }
                                            else
                                            {
                                                carregarInicial();
                                            }
                                        }
                                        else
                                        {
                                            carregarInicial();
                                        }
                                    }
                                    catch (Exception)
                                    {
                                        Mensagem.aviso = "Erro ao salvar!";
                                        TelaMensagemAviso f = new TelaMensagemAviso();
                                        f.ShowDialog();
                                    }
                                }
                                else
                                {
                                    carregarInicial();
                                }
                            }
                            else
                            {
                                Mensagem.aviso = "CEP inválido!";
                                TelaMensagemAviso g = new TelaMensagemAviso();
                                g.ShowDialog();
                            }
                        }
                        else
                        {
                            Mensagem.aviso = "Insira uma imagem de perfil!";
                            TelaMensagemAviso g = new TelaMensagemAviso();
                            g.ShowDialog();
                        }
                    }
                    else
                    {
                        Mensagem.aviso = "CNPJ inválido!";
                        TelaMensagemAviso g = new TelaMensagemAviso();
                        g.ShowDialog();
                    }
                }
                else
                {
                    Mensagem.aviso = "Alguns campos não foram preenchidos!";
                    TelaMensagemAviso f = new TelaMensagemAviso();
                    f.ShowDialog();
                }
            }
            catch (Exception)
            {
                Mensagem.aviso = "Erro ao salvar!";
                TelaMensagemAviso f = new TelaMensagemAviso();
                f.ShowDialog();
            }
        }