Example #1
0
        private void btnExecutar_Click(object sender, EventArgs e)
        {
            ConexaoCliente cx  = new ConexaoCliente("Data Source=DESKTOP-IM6U0AK;Initial Catalog=Agenda;Integrated Security=True");
            DALContato     dal = new DALContato(cx);

            dgDados.DataSource = dal.Localizar(txbValor.Text);
        }
        private void panel10_Paint(object sender, PaintEventArgs e)
        {
            ConexaoCliente cx  = new ConexaoCliente("Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True");
            DALContato     dal = new DALContato(cx);

            dgDados.DataSource = dal.Localizar(txbValor.Text);
        }
 private void dgDados_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.ColumnIndex >= 0)
     {
         if (e.RowIndex >= 0)
         {
             codigo = Convert.ToInt32(dgDados.Rows[e.RowIndex].Cells[0].Value);
         }
     }
     if (codigo != 0)
     {
         String         strConexao = "Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True";
         ConexaoCliente conexao    = new ConexaoCliente(strConexao);
         DALContato     dall       = new DALContato(conexao);
         Contato        contato    = dall.carregaContato(codigo);
         txbCodigo.Text    = contato.Codigo.ToString();
         txbCnpj.Text      = contato.Cnpj;
         txbNome.Text      = contato.Nome;
         txbTelefone1.Text = contato.Telefone1;
         txbTelefone2.Text = contato.Telefone2;
         txbCelular.Text   = contato.Celular;
         txbEmail.Text     = contato.Email;
         this.AlterarBotoes(3);
     }
 }
        private void btnInserir_Click(object sender, EventArgs e)
        {
            this.operacao = "inserir";
            this.AlterarBotoes(2);
            ConexaoCliente cx   = new ConexaoCliente("Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True");
            DALContato     dall = new DALContato(cx);

            dgDados.DataSource = dall.Localizar(txbValor.Text);
        }
        public void AindaContemAutoresAcaQuandoNaoRestaremAutoresAcaoAposRemocaoTest()
        {
            ConexaoCliente conexao = new ConexaoCliente("Joao", new TcpClient(), new Queue <MensagemDto>());
            Dictionary <string, string> autoresAcao = new Dictionary <string, string>();

            autoresAcao.Add("T1", "Joao");
            MensagemDto mensagemInicioEdicaoTarefa = Mensagem.RnCriarMensagemInicioEdicaoTarefaResumida(autoresAcao, "C1");
            MensagemDto mensagemProcessada         = conexao.RemocaoProprioUsuarioDoDicionarioAutoresAcao(mensagemInicioEdicaoTarefa);

            Assert.IsFalse(ConexaoCliente.AindaContemAutoresAcao(mensagemProcessada), "Não deveria ainda conter usuários " +
                           "pois foi removido o unico autor existente na mensagem 'Joao'");
        }
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (txbCnpj.Text != "" && txbNome.Text != "" && txbTelefone1.Text != "")
            {
                DialogResult d;

                if (operacao == "inserir")
                {
                    d = MessageBox.Show("Deseja Cadastrar Cliente ?", "Aviso", MessageBoxButtons.YesNo);
                }
                else
                {
                    d = MessageBox.Show("Deseja Alterar Cadastro ?", "Aviso", MessageBoxButtons.YesNo);
                }
                if (d.ToString() == "Yes")
                {
                    Contato contato = new Contato();
                    {
                        contato.Cnpj      = txbCnpj.Text;
                        contato.Nome      = txbNome.Text;
                        contato.Telefone1 = txbTelefone1.Text;
                        contato.Telefone2 = txbTelefone2.Text;
                        contato.Celular   = txbCelular.Text;
                        contato.Email     = txbEmail.Text;
                        String         strConexao = "Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True";
                        ConexaoCliente conexao    = new ConexaoCliente(strConexao);
                        DALContato     dal        = new DALContato(conexao);
                        if (this.operacao == "inserir")
                        {
                            dal.Incluir(contato);
                            MessageBox.Show("O codigo gerado foi: " + contato.Codigo.ToString());
                        }
                        else
                        {
                            contato.Codigo = Convert.ToInt32(txbCodigo.Text);
                            dal.Alterar(contato);
                        }
                        this.AlterarBotoes(1);
                        this.LimpaCampos();
                    }

                    ConexaoCliente cx   = new ConexaoCliente("Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True");
                    DALContato     dall = new DALContato(cx);
                    dgDados.DataSource = dall.Localizar(txbValor.Text);
                }
            }
            else
            {
                MessageBox.Show("Os campos obrigatorios não podem ficar em branco!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
 private void txbValor_TextChanged(object sender, EventArgs e)
 {
     if (txbValor.Text != "")
     {
         ConexaoCliente cx  = new ConexaoCliente("Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True");
         DALContato     dal = new DALContato(cx);
         dgDados.DataSource = dal.Localizar(txbValor.Text);
     }
     else if (txbValor.Text == "")
     {
         ConexaoCliente cx  = new ConexaoCliente("Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True");
         DALContato     dal = new DALContato(cx);
         dgDados.DataSource = dal.Localizar(txbValor.Text);
     }
 }
        public void RemoverProprioUsuarioDoVetorUsuariosDaMensagemDtoTest()
        {
            // Assert.Inconclusive("Teste para simular a remoção de um usuário de uma mensagem dto que possua uma hash de usuários montar cenário e expectativas");
            string[] usuarios         = new string[] { "Joao", "Paulo", "Gabriel", "Anderson" };
            string[] usuariosRefeitos = new string[] { "Paulo", "Gabriel", "Anderson" };
            string[] tarefas          = new string[] { "T1", "T2", "T3", "T4", "T5" };
            Dictionary <string, Int16> tarefasImpactadas = new Dictionary <string, short>();

            tarefasImpactadas.Add("T1", 1);
            tarefasImpactadas.Add("T2", 2);
            tarefasImpactadas.Add("T3", 3);
            tarefasImpactadas.Add("T4", 4);
            tarefasImpactadas.Add("T5", 5);
            DateUtil.CurrentDateTime = DateTime.Now;

            /*
             * Testar a mensagem com os tipos:
             *  RnCriarMensagemConexaoEfetuadaComSucesso
             *  RnCriarMensagemNovoUsuarioConectado
             *  RnCriarMensagemUsuarioDesconectado
             *  RnCriarMensagemMovimentacaoTarefa
             */

            MensagemDto mensagemConexaoEfetuadaComSucesso = Mensagem.RnCriarMensagemConexaoEfetuadaComSucesso(usuarios, "C1", null);
            MensagemDto mensagemNovoUsuarioConectado      = Mensagem.RnCriarMensagemNovoUsuarioConectado(usuarios, "C1");
            //Simulação Quando houver somente o proprio usuário se desconectando (Resumir mensagens pode resumir a mensagem e adicionar outros usuários)
            MensagemDto mensagemUsuarioDesconectado = Mensagem.RnCriarMensagemUsuarioDesconectado("Joao", "C1");
            //Simulando quando vários usuários solicitaram a desconexão e deve ser removido a si mesmo da mensagem
            MensagemDto mensagemUsuarioDesconectado2 = Mensagem.RnCriarMensagemUsuarioDesconectado(usuarios, "C1");
            //Simulando quando usuário efetuar a movimentação de tarefas, o usuário não deverá receber notificação da sua própria ação
            MensagemDto mensagemMovimentacaoTarefa = Mensagem.RnCriarMensagemMovimentacaoTarefa(1, 5, "T1", tarefasImpactadas, "Joao", "C1", DateUtil.CurrentDateTime);
            //Simulando quando outro usuário efetuar a movimentação de tarefas, o usuário deverá receber notificação ação de movimentação
            MensagemDto mensagemMovimentacaoTarefa2 = Mensagem.RnCriarMensagemMovimentacaoTarefa(1, 5, "T1", tarefasImpactadas, "Pedro", "C1", DateUtil.CurrentDateTime);

            ConexaoCliente conexao = new ConexaoCliente("Joao", new TcpClient(), new Queue <MensagemDto>());

            mensagemConexaoEfetuadaComSucesso = conexao.RemoverProprioUsuarioDoVetorUsuariosDaMensagemDto(mensagemConexaoEfetuadaComSucesso);
            mensagemNovoUsuarioConectado      = conexao.RemoverProprioUsuarioDoVetorUsuariosDaMensagemDto(mensagemNovoUsuarioConectado);
            mensagemUsuarioDesconectado       = conexao.RemoverProprioUsuarioDoVetorUsuariosDaMensagemDto(mensagemUsuarioDesconectado);
            mensagemUsuarioDesconectado2      = conexao.RemoverProprioUsuarioDoVetorUsuariosDaMensagemDto(mensagemUsuarioDesconectado2);

            //asserts

            CollectionAssert.AreEquivalent(usuariosRefeitos, (string[])mensagemConexaoEfetuadaComSucesso.Propriedades[Constantes.USUARIOS], "Não deveria ter recebido a notificação relativa a si mesmo");
            CollectionAssert.AreEquivalent(usuariosRefeitos, (string[])mensagemNovoUsuarioConectado.Propriedades[Constantes.USUARIOS], "Não deveria ter recebido a notificação relativa a si mesmo");
            CollectionAssert.AreEquivalent(usuariosRefeitos, (string[])mensagemUsuarioDesconectado2.Propriedades[Constantes.USUARIOS], "Não deveria ter recebido a notificação relativa a si mesmo");
            CollectionAssert.AreEquivalent(usuariosRefeitos, (string[])mensagemConexaoEfetuadaComSucesso.Propriedades[Constantes.USUARIOS], "Não deveria ter recebido a notificação relativa a si mesmo");
        }
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            DialogResult d = MessageBox.Show("Deseja excluir o registro ?", "Aviso", MessageBoxButtons.YesNo);

            if (d.ToString() == "Yes")
            {
                String         strConexao = "Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True";
                ConexaoCliente conexao    = new ConexaoCliente(strConexao);
                DALContato     dal        = new DALContato(conexao);
                dal.Excluir(Convert.ToInt32(txbCodigo.Text));
                this.AlterarBotoes(1);
                this.LimpaCampos();
                ConexaoCliente cx   = new ConexaoCliente("Data Source=DESKTOP-788MSMO;Initial Catalog=Logins;Integrated Security=True");
                DALContato     dall = new DALContato(cx);
                dgDados.DataSource = dall.Localizar(txbValor.Text);
            }
        }
        public void RemocaoProprioUsuarioDoDicionarioAutoresTarefaDaMensagemDto()
        {
            string[]       colaboradores            = new string[] { "Joao", "Paulo", "Pablo", "Mario" };
            ConexaoCliente conexao                  = new ConexaoCliente("Joao", new TcpClient(), new Queue <MensagemDto>());
            Dictionary <string, string> autoresAcao = new Dictionary <string, string>();
            int i = 0;

            colaboradores.ToList().ForEach((o) => { i++; autoresAcao.Add(string.Format("T{0}", i), o); });
            Dictionary <string, string> autoresAcaoResultadoEsperado = new Dictionary <string, string>(autoresAcao);
            MensagemDto mensagemInicioEdicaoTarefa = Mensagem.RnCriarMensagemInicioEdicaoTarefaResumida(autoresAcao, "C1");

            MensagemDto mensagemProcessada = conexao.RemocaoProprioUsuarioDoDicionarioAutoresAcao(mensagemInicioEdicaoTarefa);

            autoresAcaoResultadoEsperado.Remove("T1");

            CollectionAssert.AreEquivalent(autoresAcaoResultadoEsperado, (Dictionary <string, string>)mensagemProcessada.Propriedades[Constantes.AUTORES_ACAO], "Deveriam possuir os mesmo valores sendo removido o usuário Joao");
        }
        public void AindaContemAutoresAcaQuandoRestaremAutoresAcaoAposRemocaoTest()
        {
            string[]       colaboradores            = new string[] { "Joao", "Paulo", "Pablo", "Mario" };
            ConexaoCliente conexao                  = new ConexaoCliente("Joao", new TcpClient(), new Queue <MensagemDto>());
            Dictionary <string, string> autoresAcao = new Dictionary <string, string>();
            int i = 0;

            colaboradores.ToList().ForEach((o) => { i++; autoresAcao.Add(o, string.Format("T{0}", i)); });
            Dictionary <string, string> autoresAcaoResultadoEsperado = new Dictionary <string, string>(autoresAcao);
            MensagemDto mensagemInicioEdicaoTarefa = Mensagem.RnCriarMensagemInicioEdicaoTarefaResumida(autoresAcao, "C1");

            MensagemDto mensagemProcessada = conexao.RemocaoProprioUsuarioDoDicionarioAutoresAcao(mensagemInicioEdicaoTarefa);

            Assert.IsTrue(ConexaoCliente.AindaContemAutoresAcao(mensagemProcessada), "Deveria ainda conter usuários pois foi removido apenas o Joao da Mensagem");

            ConexaoCliente conexao2 = new ConexaoCliente("Joao", new TcpClient(), new Queue <MensagemDto>());

            autoresAcao = new Dictionary <string, string>();
            autoresAcao.Add("Joao", "T1");
            mensagemInicioEdicaoTarefa = Mensagem.RnCriarMensagemInicioEdicaoTarefaResumida(autoresAcao, "C1");
            mensagemProcessada         = conexao.RemocaoProprioUsuarioDoDicionarioAutoresAcao(mensagemInicioEdicaoTarefa);
        }
        public void DesconectarConexaoClienteTest()
        {
            IPAddress   ipServidor = IPAddress.Parse("127.0.0.1");
            const int   porta      = 8003;
            TcpListener servidor   = new TcpListener(ipServidor, porta);

            servidor.Start();
            TcpClient tcpCliente = new TcpClient();

            tcpCliente.Connect(ipServidor, porta);
            servidor.AcceptTcpClient();
            Queue <MensagemDto> fila    = new Queue <MensagemDto>();
            const string        login   = "******";
            ConexaoCliente      conexao = new ConexaoCliente(login, tcpCliente, fila);

            conexao.Desconectar();

            ControleDeEsperaUtil.AguardarAte(() => { return(!conexao.threadProcessarLeitura.IsAlive); });
            //TODO: @wex developer rever permissão cliente.
            Assert.IsFalse(conexao.PermissaoDeEscrita, "Deveria ter a permissão de processamento de escrita desativada");
            Assert.IsFalse(conexao.PermissaoDeLeitura, "Deveria ter a permissão de processamento de leitura desativada");
            Assert.IsFalse(conexao.threadProcessarLeitura.IsAlive, "Sem a permissão a thread de processamento de leitura deveria ter encerrado");
        }
        public void ReceberMensagemQuandoHouverMaisDeUmJsonNaMensagem()
        {
            const string USUARIOS = "usuarios";
            //Configurações de Ip e porta do servidor
            IPAddress    ipServidor    = IPAddress.Parse("127.0.0.1");
            const int    portaServidor = 8002;
            const string login         = "******";
            const string oidCronograma = "C1";

            string[] usuarios = new string[1];
            //Instanciação do Servidor para escutar o cliente
            TcpListener servidor = new TcpListener(ipServidor, portaServidor);

            servidor.Start();

            //Instanciação do cliente que irá conectar no servidor
            TcpClient cliente = new TcpClient();

            cliente.Connect(ipServidor, portaServidor);
            //Servidor Aceitando a solicitação do cliente
            TcpClient conexao = servidor.AcceptTcpClient();
            //Fila de processamento
            Queue <MensagemDto> filaProcessamento = new Queue <MensagemDto>();

            usuarios[0] = login;
            ConexaoCliente conexaoCliente = new ConexaoCliente(login, conexao, filaProcessamento);
            //Configurando propriedades da mensagem
            Hashtable propriedades = new Hashtable();

            propriedades.Add(USUARIOS, usuarios);
            propriedades.Add(oidCronograma, oidCronograma);
            //Montando a Mensagem que será enviada
            MensagemDto mensagem = new MensagemDto()
            {
                Tipo = CsTipoMensagem.NovosUsuariosConectados, Propriedades = propriedades
            };
            //Serializando a Mensagem que será enviada
            string mensagemJsonEnviada = JsonConvert.SerializeObject(mensagem);

            mensagemJsonEnviada = TcpUtil.AdicionarStringProtecaoDeIntegridade(mensagemJsonEnviada);
            //Enviando a Mensagem através da conexão do cliente

            const string login2 = "Pedro";

            //Configurando propriedades da mensagem
            propriedades = new Hashtable();
            usuarios     = new string[1];
            usuarios[0]  = login2;
            propriedades.Add(Constantes.USUARIOS, usuarios);
            propriedades.Add(Constantes.OIDCRONOGRAMA, oidCronograma);
            //Montando a Mensagem que será enviada
            mensagem = new MensagemDto()
            {
                Tipo = CsTipoMensagem.NovosUsuariosConectados, Propriedades = propriedades
            };
            //Serializando a Mensagem que será enviada
            string mensagemJsonEnviada2 = JsonConvert.SerializeObject(mensagem);

            mensagemJsonEnviada2 = TcpUtil.AdicionarStringProtecaoDeIntegridade(mensagemJsonEnviada2);
            //Enviando a Mensagem através da conexão do cliente
            TcpUtil.EnviarMensagemTcp(mensagemJsonEnviada + mensagemJsonEnviada2, cliente);

            ControleDeEsperaUtil.AguardarAte(() => { return(filaProcessamento.Count == 2); });

            Assert.AreEqual(2, filaProcessamento.Count, "Deveria possuir 2 mensagens enfileiradas");
            Assert.IsTrue(conexaoCliente.Buffer == "", "Buffer deveria estar vazio pois as mensagens json eram mensagens válidas");

            conexaoCliente.Desconectar();
            servidor.Stop();
            cliente.Close();
            conexao.Close();
        }
        public void ReceberMensagemQuandoJsonIncompleto()
        {
            #region Estimativa do teste:

            /*
             * Estimativa do teste:
             * - Receber uma mensagem json incompleta e armazenar no buffer e a fila deve estar vazia
             * - receber o resto da mensagem processar e enfileirar
             * Cenário:
             * - conexão instanciada e configurada
             * - filaProcessamento
             * - MensagemJson convertida
             * - MensagemJson repartida em 2
             * - enviar as 2 partes separadamente
             * Acontecimento Estimado:
             * - Armazenar no buffer a mensagem incompleta
             * - Verificar quando ela completar
             * - Enfileirar a mensagem(somente se for completa)
             * Resultado Estimado:
             * - Deve conseguir enfileirar a mensagem
             */
            #endregion

            //Configurações de Ip e porta do servidor
            IPAddress    ipServidor    = IPAddress.Parse("127.0.0.1");
            const int    portaServidor = 8001;
            const string login         = "******";
            string[]     usuarios      = new string[1];
            //Instanciação do Servidor para escutar o cliente
            TcpListener servidor = new TcpListener(ipServidor, portaServidor);
            servidor.Start();

            //Instanciação do cliente que irá conectar no servidor
            TcpClient cliente = new TcpClient();
            cliente.Connect(ipServidor, portaServidor);
            //Servidor Aceitando a solicitação do cliente
            TcpClient conexao = servidor.AcceptTcpClient();

            //Fila de processamento
            Queue <MensagemDto> filaProcessamento = new Queue <MensagemDto>();
            ConexaoCliente      conexaoCliente    = new ConexaoCliente(login, conexao, filaProcessamento);

            //Montando a Mensagem que será enviada
            MensagemDto mensagem = Mensagem.RnCriarMensagemNovoUsuarioConectado(new string[] { login }, "C1");
            //Serializando a Mensagem que será enviada
            string mensagemEnvio = JsonConvert.SerializeObject(mensagem);
            //Adicionando string de verificação de integridade
            mensagemEnvio = TcpUtil.AdicionarStringProtecaoDeIntegridade(mensagemEnvio);
            //Dividindo a mensagem em 2 partes
            string mensagemParte1 = mensagemEnvio.Substring(0, 12);
            string mensagemParte2 = mensagemEnvio.Substring(12, (mensagemEnvio.Length - 12));
            Assert.AreEqual(mensagemEnvio, mensagemParte1 + mensagemParte2, "Deveriam Ser Iguais");
            //Enviando a Mensagem através da conexão do cliente
            TcpUtil.EnviarMensagemTcp(mensagemParte1, cliente);
            TcpUtil.EnviarMensagemTcp(mensagemParte2, cliente);
            //Aguardando o enfileiramento
            ControleDeEsperaUtil.AguardarAte(() => { return(filaProcessamento.Count == 1); });
            Assert.AreEqual(1, filaProcessamento.Count, "Deveria possuir 1 mensagem enfileirada");
            Assert.IsTrue(conexaoCliente.Buffer == "", "Deveria ter resolvido o buffer e enfileirado o evento");
            conexaoCliente.Desconectar();
            servidor.Stop();
            conexao.Close();
        }