public CampanhasEnviados BuscarDados(int id) { try { CampanhasEnviados campanhas = null; DBSession session = new DBSession(); Query quey = session.CreateQuery("select isnull((select top 1 me.dtenviarapartir from mailing_enviados as me where me.idcampanha = mc.idcampanha order by me.dtenviarapartir), '01/01/1900') as data, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha) as selecionados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and me.flenviado = 1) as enviados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_abriu as ma where ma.idenviado = me.idenviado)) as abertos, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_clicou as ma where ma.idenviado = me.idenviado)) as clicados, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso where me.idcampanha = @idcampanha) as inscricoes, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_abriu ma on ma.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso where me.idcampanha = @idcampanha) as inscricoesa, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_clicou mc on mc.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso where me.idcampanha = @idcampanha) as inscricoesc, mc.idmensagem, mc.txcodigo, (select count(*) from mailing_descadastrar as md WHERE md.idcampanha = mc.idcampanha) as descadastrados from mailing_campanhas as mc where mc.idcampanha = @idcampanha"); quey.SetParameter("idcampanha", id); IDataReader reader = quey.ExecuteQuery(); if (reader.Read()) { campanhas = new CampanhasEnviados(Convert.ToDateTime(reader["data"]), Convert.ToInt32(reader["enviados"]), Convert.ToInt32(reader["abertos"]), Convert.ToInt32(reader["inscricoes"]), Convert.ToInt32(reader["clicados"]), Convert.ToInt32(reader["inscricoesa"]), Convert.ToInt32(reader["inscricoesc"]), Convert.ToInt32(reader["idmensagem"]), Convert.ToString(reader["txcodigo"]), Convert.ToInt32(reader["descadastrados"]), Convert.ToInt32(reader["selecionados"])); } reader.Close(); session.Close(); return(campanhas); } catch (Exception error) { throw error; } }
public CampanhasEnviados BuscarEnviados(int id, int page = 1, int regs = 500) { try { CampanhasEnviados campanhas = null; DBSession session = new DBSession(); Query quey = session.CreateQuery("select mc.idcampanha, mc.txcampanha, mc.idmensagem, mc.flativo, mc.txcodigo, isnull((select top 1 me.dtenviarapartir from mailing_enviados as me where me.idcampanha = mc.idcampanha order by me.dtenviarapartir), '01/01/1900') as data, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha) as enviados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_abriu as ma where ma.idenviado = me.idenviado)) as abertos, (select count(*) as qtd from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and exists (select * from mailing_campanhas_cursos where mailing_campanhas_cursos.idcampanha = me.idcampanha and mailing_campanhas_cursos.idcurso = ac.curso) inner join curso as c ON c.codigo = ac.curso where me.idcampanha = mc.idcampanha and a.codigo not in (317, 4402)) as inscricoes from mailing_campanhas as mc where mc.idcampanha = @idcampanha"); quey.SetParameter("idcampanha", id); IDataReader reader = quey.ExecuteQuery(); if (reader.Read()) { campanhas = new CampanhasEnviados(Convert.ToInt32(reader["idcampanha"]), Convert.ToString(reader["txcampanha"]), Convert.ToInt32(reader["idmensagem"]), Convert.ToInt32(reader["flativo"]), Convert.ToString(reader["txcodigo"]), Convert.ToDateTime(reader["data"]), Convert.ToInt32(reader["enviados"]), Convert.ToInt32(reader["abertos"]), Convert.ToInt32(reader["inscricoes"]), ListarEnviados(Convert.ToInt32(reader["idcampanha"]), page, regs), ListarCursosInscritos(Convert.ToInt32(reader["idcampanha"]))); } reader.Close(); session.Close(); return(campanhas); } catch (Exception error) { throw error; } }
public CampanhasEnviados Dados() { try { CampanhasEnviados dados = new CampanhasEnviados(); DBSession session = new DBSession(); Query quey = session.CreateQuery(@"select (SELECT COUNT(*) FROM mailing_enviados WHERE FLENVIADO = 1) as enviados, (SELECT COUNT(*) FROM mailing_abriu) as abertos, (SELECT COUNT(*) FROM mailing_clicou) as clicados, (SELEct count(*) from mailing_descadastrar) as descadastrados, (select count(*) as qtd from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and exists(select* from mailing_campanhas_cursos where mailing_campanhas_cursos.idcampanha = me.idcampanha and mailing_campanhas_cursos.idcurso = ac.curso) inner join curso as c ON c.codigo = ac.curso where a.codigo not in (select idaluno from timeline_usuarios where flignorar = 1)) as inscricoes, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_abriu ma on ma.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso) as inscricoesa, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_clicou mc on mc.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso) as inscricoesc"); IDataReader reader = quey.ExecuteQuery(); if (reader.Read()) { dados = new CampanhasEnviados() { enviados = Convert.ToInt32(reader["enviados"]), abertos = Convert.ToInt32(reader["abertos"]), inscricoes = Convert.ToInt32(reader["inscricoes"]), clicados = Convert.ToInt32(reader["clicados"]), descadastrados = Convert.ToInt32(reader["descadastrados"]), taxa_abertura = (double)Convert.ToInt32(reader["abertos"]) / (double)Convert.ToInt32(reader["enviados"]) * 100, taxa_inscricoes = ((double)Convert.ToInt32(reader["inscricoes"]) / (double)Convert.ToInt32(reader["abertos"])) * 100, taxa_clicados = ((double)Convert.ToInt32(reader["clicados"]) / (double)Convert.ToInt32(reader["abertos"])) * 100, inscricoesa = Convert.ToInt32(reader["inscricoesa"]), inscricoesc = Convert.ToInt32(reader["inscricoesc"]) }; } reader.Close(); session.Close(); return(dados); } catch (Exception error) { throw error; } }
public List <TimelineEventos> EventosEmails(int turma) { try { List <TimelineEventos> eventos = new List <TimelineEventos>(); DBSession session = new DBSession(); //Query quey = session.CreateQuery("select mca.dtenvio as data, mcc.idcampanha, mc.txcampanha from mailing_campanhas_cursos mcc inner join mailing_campanhas mc on mc.idcampanha = mcc.idcampanha inner join mailing_campanhas_agendamento mca on mca.idcampanha = mcc.idcampanha where mcc.idcurso = @turma and mca.dtenvio is not null order by mca.dtenvio"); Query quey = session.CreateQuery(@"select mca.dtenvio as data, mcc.idcampanha, mc.txcampanha, isnull((select top 1 me.dtenviarapartir from mailing_enviados as me where me.idcampanha = mc.idcampanha order by me.dtenviarapartir), '01/01/1900') as data2, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha) as selecionados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and me.flenviado = 1) as enviados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_abriu as ma where ma.idenviado = me.idenviado)) as abertos, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_clicou as ma where ma.idenviado = me.idenviado)) as clicados, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_campanhas_cursos mccu on mccu.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mccu.idcurso where me.idcampanha = mcc.idcampanha) as inscricoes, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_abriu ma on ma.idenviado = me.idenviado inner join mailing_campanhas_cursos mccu on mccu.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mccu.idcurso where me.idcampanha = mcc.idcampanha) as inscricoesa, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_clicou mc on mc.idenviado = me.idenviado inner join mailing_campanhas_cursos mccu on mccu.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mccu.idcurso where me.idcampanha = mcc.idcampanha) as inscricoesc, mc.idmensagem, mc.txcodigo, (select count(*) from mailing_descadastrar as md WHERE md.idcampanha = mc.idcampanha) as descadastrados from mailing_campanhas_cursos mcc inner join mailing_campanhas mc on mc.idcampanha = mcc.idcampanha inner join mailing_campanhas_agendamento mca on mca.idcampanha = mcc.idcampanha where mcc.idcurso = @turma and mca.dtenvio is not null order by mca.dtenvio "); quey.SetParameter("turma", turma); IDataReader reader = quey.ExecuteQuery(); while (reader.Read()) { CampanhasEnviados campanhas = new CampanhasEnviados(); campanhas.idcampanha = Convert.ToInt32(reader["idcampanha"]); campanhas.data = Convert.ToDateTime(reader["data2"]); campanhas.selecionados = Convert.ToInt32(reader["selecionados"]); campanhas.enviados = Convert.ToInt32(reader["enviados"]); campanhas.inscricoes = Convert.ToInt32(reader["inscricoes"]); campanhas.abertos = Convert.ToInt32(reader["abertos"]); campanhas.clicados = Convert.ToInt32(reader["clicados"]); campanhas.inscricoesa = Convert.ToInt32(reader["inscricoesa"]); campanhas.inscricoesc = Convert.ToInt32(reader["inscricoesc"]); campanhas.taxa_abertura = (double)Convert.ToInt32(reader["abertos"]) / (double)Convert.ToInt32(reader["enviados"]) * 100; campanhas.taxa_inscricoes = ((double)Convert.ToInt32(reader["inscricoesa"]) / (double)Convert.ToInt32(reader["abertos"])) * 100; campanhas.taxa_clicados = ((double)Convert.ToInt32(reader["clicados"]) / (double)Convert.ToInt32(reader["abertos"])) * 100; campanhas.idmensagem = new DB.MensagensDB().Buscar(Convert.ToInt32(reader["idmensagem"])); campanhas.txcodigo = Convert.ToString(reader["txcodigo"]); campanhas.descadastrados = Convert.ToInt32(reader["descadastrados"]); eventos.Add(new TimelineEventos() { data = Convert.ToDateTime(reader["data"]), tipo = 6, usuario = Convert.ToInt32(reader["idcampanha"]), titulo = Convert.ToString(reader["txcampanha"]), campanha = campanhas }); } reader.Close(); session.Close(); return(eventos); } catch (Exception error) { throw error; } }