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