using System;
using System.Collections.Generic;
using System.Web;
using MySQL;
using System.Data;
using System.Web.Configuration;
using System.Web.UI.WebControls;
namespace SiteECom
{
///
/// Gestão de newsletter
///
public class Newsletter
{
public Newsletter()
{
//
// TODO: Add constructor logic here
//
}
///
/// Mostra todas as newsletter já criadas
///
/// Número da página a mostrar
/// DataTable
public static DataTable Listagem(int Pagina)
{
int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString());
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " titulo, resumo, desenvolvimento, "
+ " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, "
+ " visitas "
+ "FROM newsletter "
+ "ORDER BY data_ini DESC "
+ "LIMIT " + (Pagina * offset) + ", " + offset;
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
return dtListagem;
}
///
/// Pesquisa de conteudos
///
/// DataTable
public static DataTable Pesquisa(string Pesquisa)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " titulo, resumo, desenvolvimento, "
+ " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, "
+ " visitas "
+ "FROM newsletter "
+ "ORDER BY data_ini DESC";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
/* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */
string[] _pesquisa = Pesquisa.Split(new char[] { ' ' });
/* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */
Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa);
return dtInfo;
}
///
/// Mostra o detalhe de uma newsletter
///
/// Id do conteúdo a mostrar
/// DataTable
public static DataTable Detalhes(int Id)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " titulo, resumo, desenvolvimento, "
+ " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(data_ini, '%Y') AS data_ini_ano, "
+ " DATE_FORMAT(data_ini, '%m') AS data_ini_mes, "
+ " DATE_FORMAT(data_ini, '%d') AS data_ini_dia, "
+ " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, "
+ " DATE_FORMAT(data_fim, '%Y') AS data_fim_ano, "
+ " DATE_FORMAT(data_fim, '%m') AS data_fim_mes, "
+ " DATE_FORMAT(data_fim, '%d') AS data_fim_dia, "
+ " visitas "
+ "FROM newsletter "
+ "WHERE id=" + Id;
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Nova newsletter
///
/// Título da newsletter
/// Data da newsletter
/// Resumo do newsletter
/// Activo/Inactivo (1/0)
/// Id de quem cria a newsletter
/// Departamento de quem cria a newsletter
/// True ou False
public static Boolean Gravar(string Titulo, string Data, string Resumo, int Activo,
int CreateUser, int CreateDep)
{
bool gravado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO newsletter(titulo, data_ini, resumo, activo, createuser, createdep, createdata) "
+ "VALUES('" + Titulo + "',"
+ " '" + Data + "',"
+ " '" + Resumo + "',"
+ " " + Activo + " ,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
gravado = sqlInfo.Write();
sqlInfo.closeConnection();
return gravado;
}
///
/// Editar newsletter
///
/// ID da newsletter a editar
/// Título da newsletter
/// Data da newsletter
/// Resumo da newsletter
/// Activo/Inactivo (1/0)
/// Id de quem cria a newsletter
/// Departamento quem cria a newsletter
/// True ou False
public static Boolean Editar(int Id,
string Titulo, string Data, string Resumo, int Activo,
int EditUser, int EditDep)
{
bool editado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "UPDATE newsletter "
+ "SET titulo ='" + Titulo + "',"
+ " data_ini ='" + Data + "',"
+ " resumo ='" + Resumo + "',"
+ " activo = " + Activo + ","
+ " edituser = " + EditUser + ","
+ " editdep = " + EditDep + ","
+ " editdata =now() "
+ "WHERE id=" + Id;
editado = sqlInfo.Write();
sqlInfo.closeConnection();
return editado;
}
///
/// Registo de newsletters enviadas
///
public class Log
{
///
/// Mostra todos os envios de uma determinada newsletter
///
/// Id da newsletter enviada
/// DataTable
public static DataTable Envios(int Newsletter)
{
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " newsletter, status, "
+ " DATE_FORMAT(createdata, '%Y.%m.%d %H:%i') AS envio "
+ "FROM newsletter_envio "
+ "WHERE newsletterid=" + Newsletter + " "
+ "ORDER BY createdata DESC";
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
return dtListagem;
}
///
/// Mostra os detalhes do envio de uma newsletter
///
/// Id do envio
/// DataTable
public static DataTable Detalhes(int Envio)
{
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " newsletter, status, "
+ " DATE_FORMAT(createdata, '%Y.%m.%d') AS envio "
+ "FROM newsletter_envio "
+ "WHERE id=" + Envio + " "
+ "ORDER BY createdata DESC";
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
return dtListagem;
}
///
/// Registo de newsletters enviadas
///
/// ID da newsletter enviada
/// Código fonte da newsletter
/// Estado do envio
/// Id de quem envia a newsletter
/// Departamento quem envia a newsletter
///
public static Boolean Adicionar(int Newsletter, string Html, string Estado,
int CreateUser, int CreateDep)
{
bool gravado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO newsletter_envio(newsletterid, newsletter, status, activo, createuser, createdep, createdata) "
+ "VALUES( " + Newsletter + " ,"
+ " '" + Html + "',"
+ " '" + Estado + "',"
+ " 1,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
gravado = sqlInfo.Write();
sqlInfo.closeConnection();
return gravado;
}
}
///
/// Gestão de conteúdos para cada newsletter
///
public class Conteudos
{
///
/// Listagem de conteúdos de uma detarminada newsletter
///
public class Listagem
{
///
/// Mostra todos os conteúdos de uma determinada newsletter
///
/// ID da newsletter
/// DataTable
public static DataTable Geral(int Newsletter)
{
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT c.id, "
+ " c.createuser, c.createdep, c.createdata, "
+ " c.edituser, c.editdep, c.editdata, "
+ " c.activo, "
+ " c.local, c.ordem, c.titulo, c.resumo, c.desenvolvimento, c.imagem, "
+ " DATE_FORMAT(c.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(c.data_fim, '%Y.%m.%d') AS data_fim, "
+ " c.visitas, "
+ " COUNT(a.link) AS acessos "
+ "FROM newsletter_conteudo c LEFT OUTER JOIN newsletter_acessos a ON a.conteudoid=c.id "
+ "WHERE c.newsletterid=" + Newsletter + " "
+ "GROUP BY c.id "
+ "ORDER BY c.local, c.ordem";
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
return dtListagem;
}
///
/// Mostra todos os conteúdos de uma determinada newsletter
///
/// ID da newsletter
/// Número da página a mostrar
/// DataTable
public static DataTable Geral(int Newsletter, int Pagina)
{
int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString());
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " local, ordem, titulo, resumo, desenvolvimento, imagem, "
+ " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, "
+ " visitas "
+ "FROM newsletter_conteudo "
+ "WHERE newsletterid=" + Newsletter + " "
+ "ORDER BY local, ordem "
+ "LIMIT " + (Pagina * offset) + ", " + offset;
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
return dtListagem;
}
///
/// Mostra todos os conteúdos activos de uma determinada newsletter por área
///
/// ID da newsletter
/// DataTable
public static DataTable Local(int Newsletter, int Local)
{
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " local, ordem, titulo, resumo, desenvolvimento, imagem, "
+ " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, "
+ " visitas "
+ "FROM newsletter_conteudo "
+ "WHERE newsletterid=" + Newsletter + " "
+ " AND local=" + Local + " "
+ " AND activo=1 "
+ "ORDER BY local, ordem";
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
return dtListagem;
}
}
///
/// Pesquisa de conteudos
///
/// ID da newsletter
/// DataTable
public static DataTable Pesquisa(int Newsletter, string Pesquisa)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT c.id, "
+ " c.createuser, c.createdep, c.createdata, "
+ " c.edituser, c.editdep, c.editdata, "
+ " c.activo, "
+ " c.local, c.ordem, c.titulo, c.resumo, c.desenvolvimento, c.imagem, "
+ " DATE_FORMAT(c.data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(c.data_fim, '%Y.%m.%d') AS data_fim, "
+ " c.visitas, "
+ " COUNT(a.link) AS acessos "
+ "FROM newsletter_conteudo c LEFT OUTER JOIN newsletter_acessos a ON a.conteudoid=c.id "
+ "WHERE c.newsletterid=" + Newsletter + " "
+ "GROUP BY c.id "
+ "ORDER BY c.local, c.ordem";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
/* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */
string[] _pesquisa = Pesquisa.Split(new char[] { ' ' });
/* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */
Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa);
return dtInfo;
}
///
/// Mostra o detalhe de uma newsletter
///
/// Id do conteúdo a mostrar
/// DataTable
public static DataTable Detalhes(int Id)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " local, ordem, titulo, resumo, desenvolvimento, imagem, link, "
+ " DATE_FORMAT(data_ini, '%Y.%m.%d') AS data_ini, "
+ " DATE_FORMAT(data_fim, '%Y.%m.%d') AS data_fim, "
+ " visitas "
+ "FROM newsletter_conteudo "
+ "WHERE id=" + Id;
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Novo conteúdo
///
/// ID da newsletter
/// Localização do conteúdo na newsletter
/// Título do conteúdo
/// Ordem do conteúdo
/// Validade do conteúdo: início
/// Validade do conteúdo: fim
/// Resumo do conteúdo
/// Desenvolvimento do conteúdo
/// Activo/Inactivo (1/0)
/// Id de quem cria o conteúdo
/// Departamento de cria o conteúdo
/// True ou False
public static Boolean Gravar(int Newsletter,
string Local, string Titulo,
int Ordem,
string Inicio, string Fim,
string Link,
string Desenvolvimento,
int Activo, int CreateUser, int CreateDep)
{
bool gravado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO newsletter_conteudo(newsletterid, "
+ " local, titulo, "
+ " ordem, "
+ " data_ini, data_fim, "
+ " link, desenvolvimento, "
+ " activo, createuser, createdep, createdata) "
+ "VALUES( " + Newsletter + ","
+ " '" + Local + "',"
+ " '" + Titulo + "',"
+ " " + Ordem + ","
+ " '" + Inicio + "',"
+ " '" + Fim + "',"
+ " '" + Link + "',"
+ " '" + Desenvolvimento + "',"
+ " " + Activo + " ,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
gravado = sqlInfo.Write();
sqlInfo.closeConnection();
return gravado;
}
///
/// Editar conteúdo
///
/// ID do conteúdo a editar
/// ID da newsletter
/// Localização do conteúdo na newsletter
/// Título do conteúdo
/// Ordem do conteúdo
/// Validade do conteúdo: início
/// Validade do conteúdo: fim
/// Resumo do conteúdo
/// Desenvolvimento do conteúdo
/// Activo/Inactivo (1/0)
/// Id de quem cria o conteúdo
/// Departamento de quem cria o conteúdo
/// True ou False
public static Boolean Editar(int Id,
int Newsletter,
string Local, string Titulo,
int Ordem,
string Inicio, string Fim,
string Link,
string Desenvolvimento,
int Activo, int EditUser, int EditDep)
{
bool editado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "UPDATE newsletter_conteudo "
+ "SET newsletterid = " + Newsletter + ","
+ " local ='" + Local + "',"
+ " titulo ='" + Titulo + "',"
+ " ordem = " + Ordem + ","
+ " data_ini ='" + Inicio + "',"
+ " data_fim ='" + Fim + "',"
+ " link ='" + Link + "',"
+ " desenvolvimento ='" + Desenvolvimento + "',"
+ " activo = " + Activo + ","
+ " edituser = " + EditUser + ","
+ " editdep = " + EditDep + ","
+ " editdata =now() "
+ "WHERE id=" + Id;
editado = sqlInfo.Write();
sqlInfo.closeConnection();
return editado;
}
}
///
/// Gestão de subscrições
///
public class Subscricoes
{
///
/// Listagem de endereços ACTIVOS que subscreveram a newsletter
///
/// Array com todos os endereços activos
public static string[] Listagem()
{
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " email "
+ "FROM newsletter_subscricao "
+ "WHERE activo=1 "
+ "ORDER BY email";
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
// ENDEREÇOS SUBSCRITOS E ACTIVOS
string[] subscriocoes = new string[] { };
if (dtListagem.Rows.Count > 0)
{
Array.Resize(ref subscriocoes, dtListagem.Rows.Count);
for (int i = 0; i < dtListagem.Rows.Count; i++)
{
subscriocoes[i] = dtListagem.Rows[i].ItemArray[8].ToString();
}
}
return subscriocoes;
}
///
/// Listagem de endereços que subscreveram a newsletter
///
/// Número da página a mostrar
/// DataTable
public static DataTable Listagem(int Pagina)
{
int offset = Convert.ToInt16(WebConfigurationManager.AppSettings["offset"].ToString());
DataTable dtListagem = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " email "
+ "FROM newsletter_subscricao "
+ "ORDER BY email "
+ "LIMIT " + (Pagina * offset) + ", " + offset;
dtListagem = sqlInfo.Read();
sqlInfo.closeConnection();
return dtListagem;
}
///
/// Pesquisa de subscrições
///
/// DataTable
public static DataTable Pesquisa(string Pesquisa)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
/*
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " email "
+ "FROM newsletter_subscricao "
+ "ORDER BY email";
*/
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " email "
+ "FROM newsletter_subscricao "
+ "WHERE email LIKE '%" + Pesquisa + "%' "
+ "ORDER BY email";
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
/* #1 - CONVERTE A PESQUISA NUM ARRAY EM QUE CADA POSIÇÃO CONTEM UM PARALVRA */
//string[] _pesquisa = Pesquisa.Split(new char[] { ' ' });
/* #2 - PESQUISA TODAS AS OCURRÊNCIAS DE _pesquisa EM dtInfo. REMOVE DE dtInfo TODAS AS LINHAS QUE NÃO TENHAM PELO MENOS UMA OCURRÊNCIA */
//Intranet.Geral.Pesquisa(ref dtInfo, _pesquisa);
return dtInfo;
}
///
/// Mostra o detalhe de um endereço de email subscrito
///
/// Id do conteúdo a mostrar
/// DataTable
public static DataTable Detalhes(int Id)
{
DataTable dtInfo = new DataTable();
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "SELECT id, "
+ " createuser, createdep, createdata, "
+ " edituser, editdep, editdata, "
+ " activo, "
+ " email "
+ "FROM newsletter_subscricao "
+ "WHERE id=" + Id;
dtInfo = sqlInfo.Read();
sqlInfo.closeConnection();
return dtInfo;
}
///
/// Novo email a subscrever a newsletter
///
/// Endereço a subscrever
/// Activo/Inactivo (1/0)
/// Id de quem cria a newsletter
/// Departamento de quem cria a newsletter
/// True ou False
public static Boolean Gravar(string Email, int Activo,
int CreateUser, int CreateDep)
{
bool gravado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "INSERT INTO newsletter_subscricao(email, activo, createuser, createdep, createdata) "
+ "VALUES('" + Email + "',"
+ " " + Activo + " ,"
+ " " + CreateUser + " ,"
+ " " + CreateDep + " ,"
+ " now())";
gravado = sqlInfo.Write();
sqlInfo.closeConnection();
return gravado;
}
///
/// Editar email subscrito
///
/// ID do email subscrito a editar
/// Endereço a subscrever
/// Activo/Inactivo (1/0)
/// Id de quem cria a newsletter
/// Departamento de quem cria a newsletter
/// True ou False
public static Boolean Editar(int Id,
string Email, int Activo,
int EditUser, int EditDep)
{
bool editado = false;
sql sqlInfo = new sql(WebConfigurationManager.ConnectionStrings["Site"].ConnectionString);
sqlInfo.Query = "UPDATE newsletter_subscricao "
+ "SET email ='" + Email + "',"
+ " activo = " + Activo + ","
+ " edituser = " + EditUser + ","
+ " editdep = " + EditDep + ","
+ " editdata =now() "
+ "WHERE id=" + Id;
editado = sqlInfo.Write();
sqlInfo.closeConnection();
return editado;
}
}
}
}