static public PessoaFisica RetornarPessoaFisica(string query, int id)
        {
            try
            {
                if (connection.State == ConnectionState.Closed)
                    connection.Open();

                //Busca pelo endereco de acordo com o id do dependente
                var queryResultFirst = connection.Query<Endereco>("SELECT Endereco.tipo, Endereco.logradouro, Endereco.numero, Endereco.bairro, Endereco.complemento, Endereco.cep, Endereco.cidade, Endereco.estado FROM Endereco " +
                    "JOIN Cliente on Cliente.id_endereco = Endereco.id JOIN PessoaFisica on PessoaFisica.id_cliente = Cliente.id WHERE PessoaFisica.id = @idPessoaFisica;", new { @idPessoaFisica = id });

                Endereco endereco = queryResultFirst.First();


                var queryResult = connection.Query<PessoaFisica>(query, new { @idPessoaFisica = id });
                PessoaFisica pessoaFisica = queryResult.First();

                pessoaFisica.Endereco = endereco;

                return pessoaFisica;
            }
            catch (MySqlException exception)
            {
                Console.WriteLine(exception.ToString());
                return null;
            }
            finally
            {
                connection.Close();
            }
        }
Ejemplo n.º 2
0
 public Dependente(string primeiroNome, string sobrenome, string cpf, string rg, string data_nascimento, string email, string telefone,
                   string celular, DateTime data_cadastro, Endereco endereco, string status, string estado_civil, PessoaFisica titular)
 {
     this.PrimeiroNome   = primeiroNome;
     this.Sobrenome      = sobrenome;
     this.Cpf            = cpf;
     this.Rg             = rg;
     this.DataNascimento = data_nascimento;
     this.Email          = email;
     this.Telefone       = telefone;
     this.Celular        = celular;
     this.DataCadastro   = data_cadastro;
     this.Endereco       = endereco;
     this.Status         = status;
     this.Estado_civil   = estado_civil;
     this.titular        = titular;
 }
        //Exibir todos os dados de um cliente
        static public Cliente RetornarCliente(string identificador)
        {

            DataTable dadosCliente = new DataTable(); //valor inicial vazio
            int idBusca;

            try
            {
                if (Int32.TryParse(identificador, out idBusca)) //tenta converter a string informada em numero
                {
                    if (connection.State == ConnectionState.Closed)
                        connection.Open();

                    //Comando SQL refere-se a chamada de procedimento no banco para determinal qual tipo de cliente
                    MySqlCommand determinarTipoCliente = new MySqlCommand("ID_TIPO_CLIENTE", connection)
                    {
                        CommandType = CommandType.StoredProcedure
                    };

                    //Informando o valor do parametro de entrada do procedimento (id cliente)
                    determinarTipoCliente.Parameters.AddWithValue("@idCli", idBusca);

                    //Adicionado os parametros de saida do procedimento
                    determinarTipoCliente.Parameters.Add("@t1", MySqlDbType.Int16).Direction = ParameterDirection.Output;
                    determinarTipoCliente.Parameters.Add("@t2", MySqlDbType.Text).Direction = ParameterDirection.Output;

                    //Execucao da query
                    determinarTipoCliente.ExecuteNonQuery();

                    //Obtendo retorno do procedimento (Tipo de cliente [Dependente, PessoaFisica ou PessoaJuridica] e seu id)
                    string tipoCliente = determinarTipoCliente.Parameters["@t2"].Value.ToString();
                    int id = int.Parse(determinarTipoCliente.Parameters["@t1"].Value.ToString());
                    determinarTipoCliente.Parameters.Clear();

                    //Outro comando SQL para retornar os dados do cliente
                    string query = "";
                    string parametro = "";

                    //Determina a consulta adequada para retornar TODOS os dados de cada tipo de cliente diferente 
                    if (tipoCliente == "Dependente")
                    {
                        query = "SELECT Usuario.primeiroNome, Usuario.sobrenome, Usuario.cpf, Usuario.rg, Cliente.data_nascimento, Cliente.email, Cliente.telefone, Cliente.celular, Cliente.data_cadastro, Cliente.status, Cliente.estado_civil," +
                            " Dependente.id_titular FROM Dependente JOIN Cliente ON Dependente.id_cliente = Cliente.id JOIN Usuario ON Cliente.id_usuario = Usuario.id WHERE Dependente.id = @idDependente";

                      Dependente dependente = RetornarDependente(query, id);

                      return dependente;

                    }
                    else if (tipoCliente == "PessoaFisica")
                    {
                        query = "SELECT Usuario.primeiroNome, Usuario.sobrenome, Usuario.cpf, Usuario.rg, Cliente.data_nascimento, Cliente.email, Cliente.telefone, Cliente.celular, Cliente.data_cadastro, Cliente.status, Cliente.estado_civil, " +
                            "PessoaFisica.profissao, PessoaFisica.rendaMensal FROM PessoaFisica JOIN Cliente ON PessoaFisica.id_cliente = Cliente.id JOIN Usuario ON Cliente.id_usuario = Usuario.id WHERE PessoaFisica.id = @idPessoaFisica;";

                        PessoaFisica pessoaFisica = RetornarPessoaFisica(query, id);

                        return pessoaFisica;

                    }
                    else if (tipoCliente == "PessoaJuridica")
                    {
                        query = "SELECT Usuario.primeiroNome, Usuario.sobrenome, Usuario.cpf, Usuario.rg, Cliente.data_nascimento, Cliente.email, Cliente.telefone, Cliente.celular, Cliente.data_cadastro, Cliente.status, Cliente.estado_civil, " +
                            "PessoaJuridica.cnpj, PessoaJuridica.razaoSocial, PessoaJuridica.tipo FROM PessoaJuridica JOIN Cliente ON PessoaJuridica.id_cliente = Cliente.id JOIN Usuario ON Cliente.id_usuario = Usuario.id WHERE PessoaJuridica.id = @idPessoaJuridica;";

                        PessoaJuridica pessoaJuridica = RetornarPessoaJuridica(query, id);

                        return pessoaJuridica;
                    }

                    //Executa a consulta caso as variaveis da mesma nao sao nulas
                    if (query == "" && parametro == "")
                    {
                        return null; //erro
                    }
                }
                else
                {
                    return null; //valor informado para identificador esta incorreto
                }
            }
            catch (MySqlException exception)
            {
                Console.Write(exception.ToString());
                return null; //erro
            }
            finally
            {
                connection.Close();
            }

            return null;
        }