using System; using System.Collections.Generic; using System.Web; using MySQL; using System.Data; using System.Web.Configuration; using System.Web.UI.WebControls; namespace Intranet { /// /// Summary description for Conteudos /// public class Conteudos { public Conteudos() { // // TODO: Add constructor logic here // } /// /// Alteração de campos com estados numéricos /// /// Tabela a editar /// Id do conteúdo a editar /// Campo a editar /// Novo estado para o campo a editar /// Id do colaborador que edita o conteúdo /// Id do departamento que edita o conteúdo /// True ou false public static Boolean Activar(string Tabela, int Id, string Campo, int Estado, int Colaborador, int Departamento) { bool activar = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "UPDATE " + Tabela + " " + "SET " + Campo + "=" + Estado + ", " + " edituser=" + Colaborador + ", " + " editdep=" + Departamento + ", " + " editdata=now() " + "WHERE id=" + Id; activar = sqlInfo.Write(); sqlInfo.closeConnection(); return activar; } /// /// Apagar conteúdo de uma detarminada tabela /// /// Tabela a editar /// Id do conteúdo a apagar /// True ou false public static Boolean Apagar(string Tabela, int Id) { bool apagar = false; sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "DELETE FROM " + Tabela + " " + "WHERE id=" + Id; apagar = sqlInfo.Write(); sqlInfo.closeConnection(); return apagar; } /// /// Retorna o número de páginas existentes numa detarminada tabela agrupadas pelo offset (configurado no web.config) /// /// Tabela a contar registos/offset /// Número de páginas public static int Paginas(string Tabela) { int paginas = 0; DataTable dtPaginas = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT (COUNT(DISTINCT(id))/" + WebConfigurationManager.AppSettings["offset"].ToString() + ") AS topicos " + "FROM " + Tabela; dtPaginas = sqlInfo.Read(); sqlInfo.closeConnection(); paginas = (int) Math.Ceiling(Convert.ToDouble(dtPaginas.Rows[0].ItemArray[0].ToString())); return paginas; } /// /// Retorna o número de páginas existentes numa detarminada tabela agrupadas pelo offset (configurado no web.config) /// /// Tabela a contar registos/offset /// Valor para o cláusula WHERE /// Número de páginas public static int Paginas(string Tabela, string Condicoes) { int paginas = 0; DataTable dtPaginas = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT (COUNT(DISTINCT(id))/" + WebConfigurationManager.AppSettings["offset"].ToString() + ") AS topicos " + "FROM " + Tabela + " " + "WHERE " + Condicoes; dtPaginas = sqlInfo.Read(); sqlInfo.closeConnection(); paginas = (int)Math.Ceiling(Convert.ToDouble(dtPaginas.Rows[0].ItemArray[0].ToString())); return paginas; } /// /// Informação relativa a quem criou determinado conteúdo /// /// Tabela do conteúdo /// ID do conteúdo /// Retorna todo o texto numa string public static string Criado(string Tabela, int Id) { string texto = ""; DataTable dtCriado = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT d.abreviatura, d.email, c.nome, c.email, t.createdata " + "FROM " + Tabela + " t LEFT OUTER JOIN departamento d ON t.createdep=d.id " + " LEFT OUTER JOIN colaborador c ON t.createuser=c.id " + "WHERE t.id=" + Id; dtCriado = sqlInfo.Read(); sqlInfo.closeConnection(); if (dtCriado.Rows.Count > 0) { texto = "Criado por " + "" + dtCriado.Rows[0].ItemArray[0] + "" + "\\" + "" + dtCriado.Rows[0].ItemArray[2] + " " + "a " + dtCriado.Rows[0].ItemArray[4]; } return texto; } /// /// Informação relativa a quem editou determinado conteúdo /// /// Tabela do conteúdo /// ID do conteúdo /// Retorna todo o texto numa string public static string Editado(string Tabela, int Id) { string texto = ""; DataTable dtEditado = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT d.abreviatura, d.email, c.nome, c.email, t.editdata " + "FROM " + Tabela + " t LEFT OUTER JOIN departamento d ON t.editdep=d.id " + " LEFT OUTER JOIN colaborador c ON t.edituser=c.id " + "WHERE t.id=" + Id; dtEditado = sqlInfo.Read(); sqlInfo.closeConnection(); if (dtEditado.Rows.Count > 0) { if (dtEditado.Rows[0].ItemArray[0].ToString() != "") { texto = "Editado por " + "" + dtEditado.Rows[0].ItemArray[0] + "" + "\\" + "" + dtEditado.Rows[0].ItemArray[2] + " " + "a " + dtEditado.Rows[0].ItemArray[4]; } } return texto; } /// /// Retorna o ID do último conteúdo gravado numa determinada tabela /// /// Tabela a verificar /// Máximo id de uma tabela public static int Ultimo(string Tabela) { int id = 0; DataTable dtId = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT MAX(id) " + "FROM " + Tabela; dtId = sqlInfo.Read(); sqlInfo.closeConnection(); id = Convert.ToInt16(dtId.Rows[0].ItemArray[0]); return id; } /// /// Lista os contéudos de uma depterminada tabela /// /// Tabela a listar /// Campos a listar /// Ordem dos conteúdos /// DataTable public static DataTable Listagem(string Tabela, string Campos, string Ordem) { DataTable dtListagem = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT " + Campos + " " + "FROM " + Tabela + " " + "WHERE activo=1 " + "ORDER BY " + Ordem; dtListagem = sqlInfo.Read(); sqlInfo.closeConnection(); return dtListagem; } public class DDL { /// /// Preenche uma DropDownList com os valores do "Campo" de uma "Tabela" ordenado pela "Ordem". /// (Text="Campo" e Value="Id") /// /// DropDownLista a preencher /// Tabela da db /// Campo da tabela /// Ordenmação public static void Preencher(ref DropDownList DDL, string Tabela, string Campo, string Ordem) { ListItem liConteudos; // LIMPA A DropDownList DDL.Items.Clear(); // ADICIONAR LINHA EM BRANCO liConteudos = new ListItem("", ""); DDL.Items.Add(liConteudos); // LÊ A BASE DE DADOS DataTable dtConteudos = new DataTable(); sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString); sqlInfo.Query = "SELECT id, " + Campo + " " + "FROM " + Tabela + " " + "WHERE activo=1 " + "ORDER BY " + Ordem; dtConteudos = sqlInfo.Read(); sqlInfo.closeConnection(); // ADICIONA CONTEÚDOS À DDL foreach (DataRow conteudo in dtConteudos.Rows) { liConteudos = new ListItem(conteudo.ItemArray[1].ToString(), conteudo.ItemArray[0].ToString()); DDL.Items.Add(liConteudos); } } /// /// Adiciona a uma DropDownList os valores do "Texto" e "Valor". /// (Text="Texto" e Value="Valor") /// /// DropDownLista a preencher /// Texto da selecção /// Valor da selecção public static void Adicionar(ref DropDownList DDL, string Texto, string Valor) { ListItem liConteudos; // ADICIONAR DADOS DO UTILIZADOR liConteudos = new ListItem(Texto, Valor); DDL.Items.Add(liConteudos); } } } }