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(); } }
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; }