%@ WebHandler Language="C#" Class="Enviar" %>
using System;
using System.Web;
using System.Net;
using System.Web.Configuration;
using System.Web.SessionState;
public class Enviar : IHttpHandler, IReadOnlySessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
Intranet.Users intranetUser;
try
{
int Id = Convert.ToInt16(context.Request.QueryString["id"].ToString());
// UTILIZADPR AUTENTICADO
intranetUser = (Intranet.Users)context.Session["intranetUser"];
// COMUNICAÇÃO A ENVIAR
string comunicacaoHTML = new WebClient().DownloadString("http://" + context.Request.ServerVariables["HTTP_HOST"] + "/publico/empresas/comunicacoes.aspx?id=" + Id);
// OU
//string comunicacaoHTML = new WebClient().DownloadString(WebConfigurationManager.AppSettings["url"] + "/publico/empresa/comunicacoes.aspx?id=" + Id);
// ENDEREÇOS SUBSCRITOS
//string[] subscricoes = SiteECom.Newsletter.Subscricoes.Listagem();
string[] subscricoes = new string[] { "hugo@nersant.pt", "hugolive@gmail.com", "ugi_@hotmail.com" };
// ENVIO
bool enviado = false;
Intranet.Notificacao comunicacao = new Intranet.Notificacao(intranetUser.Email,
subscricoes,
Intranet.Empresas.Comunicacoes.Detalhes(Id).Rows[0]["titulo"].ToString());
comunicacao.Mensagem = comunicacaoHTML;
//enviado = comunicacao.Enviar();
// Envio 1 a 1
/*
comunicacao.Destinatarios.Remover(subscricoes);
foreach (string email in subscricoes)
{
comunicacao.Destinatarios.Adicionar(email);
enviado = comunicacao.Enviar();
comunicacao.Destinatarios.Remover(email);
context.Response.Write("Enviado para: " + email);
}
*/
// CRIAR LOG
string _status = "";
if (enviado)
{
_status = "Enviado para " + subscricoes.Length + " endereço(s) com sucesso.";
Intranet.Empresas.Comunicacoes.Log.Adicionar(Id,
Intranet.Criptografia.Encriptar(comunicacaoHTML),
_status,
intranetUser.ID,
intranetUser.Departamento.ID);
_status = "Enviado para " + subscricoes.Length + " endereço(s) com sucesso.";
}
else
{
_status = "Erro no envio de comunicação: " + subscricoes.Length + " endereços.";
Intranet.Empresas.Comunicacoes.Log.Adicionar(Id,
Intranet.Criptografia.Encriptar(comunicacaoHTML),
_status,
intranetUser.ID,
intranetUser.Departamento.ID);
_status = "Erro no envio de comunicação: " + subscricoes.Length + " endereços.";
}
context.Response.Write(_status);
}
catch (Exception erro)
{
context.Response.Write("ERRO");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}