public IEnumerable <ClienteListagemDTO> ListarClientes(int[] idsStatus, int idUsuario) { try { SqlCommand cmd = new SqlCommand(); cmd.Connection = con.Conectar(); // Query pra trazer somente clientes que e posso mexer como usuário // cmd.CommandText = @"SELECT * FROM Cliente c // WHERE id_status IN (@idsStatus) AND // NOT EXISTS(SELECT * FROM Analise a // WHERE c.id_cliente = a.id_cliente AND // (id_usuario = @idUsuario AND (c.id_status <> 7 AND c.id_status <> 1)))"; // cmd.Parameters.AddWithValue("@idUsuario", idUsuario); // Query que eu trago todos usuários, mas não vou permirir mexer em alguns caso eu seja o ultimo que mexeu nele cmd.CommandText = @"SELECT * FROM Cliente cli INNER JOIN Endereco e ON (e.id_cliente = cli.id_cliente) INNER JOIN Cidade c ON (c.id_cidade = e.id_cidade) INNER JOIN Estado es ON (es.id_estado = c.id_estado) INNER JOIN Pais p ON (p.id_pais = es.id_pais) INNER JOIN Analise a ON (a.id_cliente = cli.id_cliente) WHERE cli.id_status IN (@idsStatus) AND a.id_analise IN (SELECT MAX(a.id_analise) FROM Analise a GROUP BY(a.id_cliente))"; cmd.AddArrayParameters("@idsStatus", idsStatus); SqlDataReader dr = cmd.ExecuteReader(); List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>(); while (dr.Read()) { ClienteListagemDTO cliente = new ClienteListagemDTO(); cliente.Id = Convert.ToInt32(dr["id_cliente"]); cliente.Nome = dr["nome"].ToString(); cliente.CPF = dr["cpf"].ToString(); cliente.RG = dr["rg"].ToString(); cliente.DataNascimento = Convert.ToDateTime(dr["data_nascimento"]); cliente.Email = dr["email"].ToString(); cliente.IdStatus = Convert.ToInt32(dr["id_status"]); cliente.UsuarioPermitido = Convert.ToInt32(dr["id_usuario"]) != idUsuario || Convert.ToInt32(dr["id_status"]) == (int)EStatus.Cadastrado ? true : false; cliente.NomePais = dr["nome_pais"].ToString(); listaCliente.Add(cliente); } con.Desconectar(); return(listaCliente); } catch (Exception e) { throw e; } }
public IEnumerable <ClienteListagemDTO> ListarClientes(int[] idsStatus, int idUsuario) { try { // Query pra trazer somente clientes que e posso mexer como usuário // var clientes = _database.Cliente.Select(c => c.Analises.OrderByDescending(a => a.Id_Analise).First()) // se der erro muda pra id_analise // .Where(a => idsStatus.Contains(a.Id_Status) && (a.Id_Usuario != idUsuario || a.Id_Status == (int)EStatus.Cadastrado)) // .Select(a => a.Cliente) // .ToList(); // Query que eu trago todos usuários, mas não vou permirir mexer em alguns caso eu seja o ultimo que mexeu nele var clientes = _database.Cliente.Where(c => idsStatus.Contains(c.Id_Status)) .Include(c => c.Enderecos) .ThenInclude(e => e.Cidade) .ThenInclude(c => c.Estado) .ThenInclude(e => e.Pais) .IncludeFilter(c => c.Analises.OrderByDescending(a => a.Id_Analise).First()); List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>(); foreach (var cli in clientes) { ClienteListagemDTO cliente = new ClienteListagemDTO(); cliente.Id = cli.Id_Cliente; cliente.Nome = cli.Nome; cliente.CPF = cli.Cpf; cliente.RG = cli.Rg; cliente.DataNascimento = cli.Data_Nascimento; cliente.Email = cli.Email; cliente.IdStatus = cli.Id_Status; cliente.UsuarioPermitido = cli.Analises.First().Id_Usuario != idUsuario || cli.Analises.First().Id_Status == (int)EStatus.Cadastrado ? true : false; cliente.NomePais = cli.Enderecos.First().Cidade.Estado.Pais.Nome_Pais; listaCliente.Add(cliente); } return(listaCliente); } catch (Exception e) { throw e; } }
public IEnumerable <ClienteListagemDTO> ListarClientesEncerrados() { try { SqlCommand cmd = new SqlCommand(); cmd.Connection = con.Conectar(); cmd.CommandText = @"SELECT * FROM Endereco e INNER JOIN Cliente cli ON (cli.id_cliente = e.id_cliente) INNER JOIN Cidade c ON (c.id_cidade = e.id_cidade) INNER JOIN Estado es ON (es.id_estado = c.id_estado) INNER JOIN Pais p ON (p.id_pais = es.id_pais) WHERE cli.id_status = 3 OR cli.id_status = 5 OR cli.id_status = 6;"; SqlDataReader dr = cmd.ExecuteReader(); List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>(); while (dr.Read()) { ClienteListagemDTO cliente = new ClienteListagemDTO(); cliente.Id = Convert.ToInt32(dr["id_cliente"]); cliente.Nome = dr["nome"].ToString(); cliente.CPF = dr["cpf"].ToString(); cliente.RG = dr["rg"].ToString(); cliente.DataNascimento = Convert.ToDateTime(dr["data_nascimento"]); cliente.Email = dr["email"].ToString(); cliente.IdStatus = Convert.ToInt32(dr["id_status"]); cliente.NomePais = dr["nome_pais"].ToString(); listaCliente.Add(cliente); } con.Desconectar(); return(listaCliente); } catch (Exception e) { throw e; } }
public IEnumerable <ClienteListagemDTO> ListarClientesEncerrados() { try { var clientesEncerrados = _database.Cliente.Where(c => c.Id_Status == (int)EStatus.aprovado_gerencia || c.Id_Status == (int)EStatus.aprovado_controle_risco || c.Id_Status == (int)EStatus.reprovado) .Include(c => c.Enderecos) .ThenInclude(e => e.Cidade) .ThenInclude(c => c.Estado) .ThenInclude(e => e.Pais) .ToList(); List <ClienteListagemDTO> listaCliente = new List <ClienteListagemDTO>(); foreach (var clienteEncerrado in clientesEncerrados) { ClienteListagemDTO cliente = new ClienteListagemDTO(); cliente.Id = clienteEncerrado.Id_Cliente; cliente.Nome = clienteEncerrado.Nome; cliente.CPF = clienteEncerrado.Cpf; cliente.RG = clienteEncerrado.Rg; cliente.DataNascimento = clienteEncerrado.Data_Nascimento; cliente.Email = clienteEncerrado.Email; cliente.IdStatus = clienteEncerrado.Id_Status; cliente.NomePais = clienteEncerrado.Enderecos.First().Cidade.Estado.Pais.Nome_Pais; listaCliente.Add(cliente); } return(listaCliente); } catch (Exception e) { throw e; } }