public List <Chamado> ListarChamados(long idUsuario, bool usuarioTecnico) { SqlDataReader dr = null; var listaCliente = new List <Chamado>(); string where = string.Empty; var conexao = RetornaConexao(); where = $" c.IdUsuarioAbertura = {idUsuario}"; if (usuarioTecnico == true) { var idsGrupo = string.Join(",", _grupo.ListarGruposUsuario(idUsuario).Select(x => x.IdGrupo).ToList()); if (idsGrupo.Any()) { where = where + $" OR g.IdGrupo IN({idsGrupo}) "; } } try { conexao.Open(); string query = $@"SELECT c.IdChamado, c.Titulo, u.Nome as Tecnico, s.Descricao as Status, c.DataAbertura, c.DataConclusaoPrevista, c.DataFechamento, g.Descricao AS Grupo FROM tblChamado c INNER JOIN tblStatus s ON s.idStatus = c.IdStatus INNER JOIN tblSolicitacao sl ON sl.IdSolicitacao = c.IdSolicitacao LEFT JOIN tblGrupo g ON g.IdGrupo = sl.IdGrupo LEFT JOIN tblUsuario u ON u.IdUsuario = c.IdTecnico WHERE {where}"; SqlCommand cmd = new SqlCommand(query, conexao); dr = cmd.ExecuteReader(); while (dr.Read()) { listaCliente.Add(new Chamado { IdChamado = Convert.ToInt32(dr["IdChamado"]), Titulo = Convert.ToString(dr["Titulo"]), Tecnico = dr["Tecnico"] != DBNull.Value ? Convert.ToString(dr["Tecnico"]) : string.Empty, Status = Convert.ToString(dr["Status"]), DataAbertura = dr["DataAbertura"] != DBNull.Value ? Convert.ToDateTime(dr["DataAbertura"]) : new DateTime(), DataConclusaoPrevista = dr["DataConclusaoPrevista"] != DBNull.Value ? Convert.ToDateTime(dr["DataConclusaoPrevista"]) : new DateTime(), DataFechamento = dr["DataFechamento"] != DBNull.Value ? Convert.ToDateTime(dr["DataFechamento"]) : new DateTime(), Grupo = dr["Grupo"] != DBNull.Value ? Convert.ToString(dr["Grupo"]) : string.Empty, }); } } catch (Exception ex) { string erro = ex.Message; } finally { if (dr != null) { dr.Close(); } if (conexao.State == ConnectionState.Open) { conexao.Close(); } } return(listaCliente); }
public List <Grupo> ListarGruposUsuario(int idUsuario) { return(_grupoDAL.ListarGruposUsuario(idUsuario)); }